本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
本文轉(zhuǎn)載至知乎ID:Charles(白露未晞)知乎個(gè)人專欄
下載W3Cschool手機(jī)App,0基礎(chǔ)隨時(shí)隨地學(xué)編程>>戳此了解
導(dǎo)語這又將是一個(gè)不定期更新的系列~~~
本系列主要將使用到python的pygame模塊來教大家制作一些小游戲,每期制作一個(gè)。最后都會(huì)打包成.exe文件分享給大家~~~
So,對(duì)于只想玩小游戲的小伙伴來說,只需要下載相關(guān)文件就好啦~~~
至于pygame的開發(fā)文檔,暫時(shí)沒有歸入整理計(jì)劃,來日方長(zhǎng),英文不好的同學(xué)只能先看網(wǎng)上中文的資料將就下了~~~
相關(guān)文件
百度網(wǎng)盤下載鏈接: https://pan.baidu.com/s/1gDLSHDF48xV4Z7z25UjOxw
密碼: q4ib
本期參考文獻(xiàn)
鏈接:
https://www.raywenderlich.com/24252/beginning-game-programming-for-teens-with-python
作者:
Julian Meyer
說明
python版本:3.5.4
pygame版本:1.9.3(pip安裝即可)
愉快地開始
Step1:你好,兔子

效果:

Step2:添加背景
首先載入所需的圖片;其次依次通過x和y進(jìn)行循環(huán),并且根據(jù)循環(huán)里x和y的值來畫上草的效果;接下來的幾行就是在屏幕上畫出城堡。

效果:

Step3:讓兔子能夠移動(dòng)
接下來你需要加上一些真正的游戲的元素了,比如讓兔子能夠隨著按鍵移動(dòng)。


效果(可以移動(dòng)兔子):

Step4:讓兔子轉(zhuǎn)向
好的,現(xiàn)在你的兔子在你按鍵的時(shí)候可以移動(dòng)了,但是如果你能用鼠標(biāo)讓兔子朝向你選擇的方向不是更酷嗎?這樣它就不會(huì)總是朝向一個(gè)方向了。

效果:

Step5:射擊吧!兔子
讓兔子用箭頭射向它們的敵人,這一步會(huì)有一點(diǎn)復(fù)雜,因?yàn)槟阈枰櫵械募^,更新它們,旋轉(zhuǎn)它們,在它們跑出屏幕的時(shí)候刪除它們。



效果:

Step6:獾,拿上武器!
好吧,現(xiàn)在有了城堡,并且你有一個(gè)英雄可以移動(dòng)和射出箭頭。還差什么呢?當(dāng)然是攻擊城堡的敵人啦~
在這一步,你將會(huì)隨機(jī)創(chuàng)建出一些獾沖向城堡。在游戲的進(jìn)程中會(huì)有越來越多的獾冒出來。



效果:

Step7:獾與箭頭的碰撞
獾們沖向你的城堡,但是你的箭頭對(duì)它們完全沒有作用!這讓兔子怎么防守它的家園呢?
是時(shí)候來讓箭頭能夠殺死獾讓兔子能保護(hù)自己的城堡并且贏得這場(chǎng)游戲了~~~

效果:

Step8:添加健康值和時(shí)間的顯示
游戲運(yùn)行起來相當(dāng)不錯(cuò)了,有攻擊者、防守者?,F(xiàn)在,你需要的就是通過一個(gè)方法來顯示兔子的得分。
最簡(jiǎn)單的方法就是添加一個(gè)HUD來顯示當(dāng)前城堡的生命值。你也可以加一個(gè)計(jì)時(shí)來記錄城堡存活下來的時(shí)間。


效果:

Step9:贏或輸
如果你玩的時(shí)間夠長(zhǎng),即使你的生命值已經(jīng)變成0了,游戲仍然是繼續(xù)的!不僅如此,你仍然可以用箭頭射向這些獾。這肯定不太對(duì)。你需要加上一些贏或者輸?shù)那闆r來讓你的游戲值得玩。
那么我們來加上勝利或者失敗的條件。你可以通過終止主循環(huán),進(jìn)入勝利/失敗的循環(huán)來實(shí)現(xiàn)它。你需要指出玩家是否勝利,并將其顯示在屏幕上。



效果:

Step10:免費(fèi)的音樂和聲音效果
這個(gè)游戲現(xiàn)在相當(dāng)不錯(cuò)了,但是沒有聲音。有點(diǎn)太安靜了。加上一點(diǎn)聲音效果,能讓你更好地感受這個(gè)游戲。



效果:
當(dāng)然是會(huì)各種音效啦~~~圖片大概是表達(dá)不了了emm。
OK,大功告成,你完美地制作了一款小游戲!
在這基礎(chǔ)上,你可以根據(jù)你自己的創(chuàng)意來擴(kuò)展游戲!比如,你可以試著重置里面的各種圖片,加上不同的槍或者是不同的怪物!