本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專(zhuān)欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
導(dǎo)語(yǔ)
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專(zhuān)欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
本期我們將制作一個(gè)簡(jiǎn)單的滑雪游戲。
廢話(huà)不多說(shuō),讓我們愉快地開(kāi)始吧~
相關(guān)文件
百度網(wǎng)盤(pán)下載鏈接: https://pan.baidu.com/s/1F74v1qGVk2NEWMEv-5E25w
密碼: 2fcv
圖片素材源于網(wǎng)絡(luò),侵歉刪。
開(kāi)發(fā)工具
Python版本:3.6.4
相關(guān)模塊:
pygame模塊;
以及一些Python自帶的模塊。
環(huán)境搭建
安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。
先睹為快
原理介紹
游戲規(guī)則:
玩家通過(guò)“AD”鍵或者“←→”操控前進(jìn)中的滑雪者,努力避開(kāi)路上的樹(shù),盡量撿到路上的小旗。
如果碰到樹(shù),則得分減50,如果撿到小旗子,則得分加10。
逐步實(shí)現(xiàn):
Step1:定義精靈類(lèi)
由于游戲涉及到碰撞檢測(cè)(滑雪者與樹(shù)和小旗之間的碰撞),因此我們定義兩個(gè)精靈類(lèi),分別用于代表滑雪者和障礙物(即樹(shù)和小旗):
其中,滑雪者在前進(jìn)過(guò)程中應(yīng)當(dāng)擁有向左,向右偏移的能力,并且在偏移時(shí)滑雪者向前的速度應(yīng)當(dāng)減慢才更加合乎常理,這樣才能供玩家操作。同時(shí),滑雪者應(yīng)當(dāng)擁有不同的姿態(tài)來(lái)表現(xiàn)自己滑行時(shí)的狀態(tài):
直線(xiàn):
左偏一點(diǎn):
左偏很多:
右偏一點(diǎn):
右偏很多:
另外,盡管滑雪者的左右移動(dòng)通過(guò)移動(dòng)滑雪者本身實(shí)現(xiàn),但是滑雪者的向前移動(dòng)是通過(guò)移動(dòng)障礙物實(shí)現(xiàn)的。
Step2:隨機(jī)創(chuàng)建障礙物
現(xiàn)在我們需要定義一個(gè)隨機(jī)創(chuàng)建障礙物的函數(shù),以便在游戲主循環(huán)中調(diào)用:
Step3:游戲主循環(huán)
首先我們初始化一些參數(shù):
其中障礙物創(chuàng)建兩次的目的是便于畫(huà)面銜接。
然后我們就可以定義主循環(huán)了:
主循環(huán)的內(nèi)容包括:
事件監(jiān)聽(tīng)、障礙物的更新、碰撞檢測(cè)以及分?jǐn)?shù)的展示等內(nèi)容,總之還是很容易實(shí)現(xiàn)的。
Step4:其他
開(kāi)始、結(jié)束界面這些,就靠大家自己發(fā)揮了,我就寫(xiě)了一個(gè)簡(jiǎn)單的開(kāi)始界面:
效果:
All Done!
更多
代碼截止2018-07-12測(cè)試無(wú)誤。
歡迎到GitHub上Star:
https://github.com/CharlesPikachu/Games