10 用Python寫一個小游戲


今天玩點別的吧

都說 Python 除了生孩子

什么都能干

img

咱們今天

就用 Python 寫個小游戲

貪吃蛇

**
**

**
**

img

想必大家都玩過這玩意

有沒有想過

你自己來實現一個這樣的游戲呢

那么接下來就是

學習 python 的正確姿勢

img

想要用 Python 寫一個小游戲

就不得不知道 pygame 這個庫了

這個庫是在 sdl 之上構建的

可以使用到很多 GUI、渲染畫布等

廢話不多說

我們開始

首先我們得有個窗口

通過 pygame 的初始化就

可以使用它提供給我們的工具了

img

既然有東西可用了

來設置一下游戲名稱吧

想了想

就叫做

《帥氣的python》

img

恩,很符合小帥b的氣質

img

通過 set_model 方法

可以設置窗口的大小

比如:

img

那么這時候得到的窗口就是這樣

img

把這張圖點開,居然發現了一張帥臉

窗口有了

咱們把蛇搞上去

背景我們就默認黑色吧

所以蛇的顏色應該是白色

這樣才顯得比較凸突出

通過 pygame 的 rect 方法

可以在畫布上畫矩形

那么一開始

我們的蛇應該是處於中間的

蛇的長度就給 4 個格子吧

這里我們一個格子的寬高設置為 10

img

現在應該是這個樣子

img

蛇有了

就差食物了

一樣的道理

img

現在就成這樣了

img

還整的有模有樣的

img

不過這食物吧

隨機的才對

而且我們剛寫的代碼有點糙

搗騰搗騰

img

這里把食物的位置隨機了一下

這樣每次一運行就會隨機顯示了

img

img

好了

現在蛇也有了

食物也有了

接下來就讓蛇的身體

扭!起!來!

img

需要監聽一下

方向鍵的事件

通過 pygame 的這個方法

pygame.event.get()

可以監聽事件

比如監聽關閉

img

又比如這樣來監聽我們的方向鍵

img

運行起來

只要你按了方向鍵

就會被監聽到

img

接着定義一個蛇頭的位置

img

蛇頭居中

指引方向

每次觸發一個方向鍵

就讓蛇頭的位置發生相應的變化

然后更新蛇身的位置

img

所謂更新蛇身位置

主要將是將列表中的元素更新一下

添加蛇頭的位置

pop掉蛇尾的位置

每次更新

需要渲染一下畫布

img

運行一下就是這樣的

img

我把它扭起來了

我這該死的手速

差點暴露了什么

img

剛剛的代碼是不是很多重復

抽成一個方法吧

img

蛇也有了

也會扭了

食物也有了

接下來就讓它去吃啊

怎么吃呢

吃一塹長一智

判斷下唄

只要頭碰到了食物

就算吃到了

給蛇的身體加一格

img

這里只要發現頭的位置

和食物的位置相同

就說明吃到了

此時列表的數據就不 pop 了

並且食物的位置重新隨機生成

那么現在每次重新渲染的時候

食物的位置就是隨機的了

運行起來

img

nice

就是要這樣

不過現在

這條蛇好像有外掛似得

撞到南牆都不死的

撞到自己也不死的

鬧呢?

你以為你充錢了么?

img

怎么判斷撞到自己了呢

其實就是把列表的數據拿出來比對

第一個元素是蛇頭

拿它跟其它元素比對

相同就代表撞到了

img

如何判斷撞到了牆了呢

通過蛇頭的位置

只要不超過 [500, 500] 就沒事吧

也就是說

只要蛇頭都在畫布之內

就行

img

這里就直接退出了

img

效果就是這樣

撞到就直接拜拜

img

當然

畫布一直頻繁的更新

所以可以使用 pygame 的 clock

img

img

這樣子每秒不會超過 10 幀

這樣就不會那么浪費資源了

轉載自公眾號:學習Python的正確姿勢


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM