利用python做個小遊戲(1)

利用python做個小遊戲(1)

來自專欄 python小白聯盟4 人贊了文章

從本期開始,我們將利用幾天的時間利用python來做個小遊戲,當然,在做小遊戲之前,我們必須學會一個做小遊戲的第三方庫——pygame。可能有人會說,python不擅長或者說不適合用來做遊戲,的確是這樣,但是我們可以通過以做遊戲的方式來鞏固我們學過的知識,何樂而不為呢?廢話不多說,擼起袖子加油干!!!

pygame的安裝

如果你之前在安裝python的時候,如果把環境變數等等都配置好了,那麼安裝pygame是很容易的事,只要打開cmd輸入pip install pygame即可

當看到Successfully installed xxx 的字樣即說明已經成功安裝。

另外說一句,如果想要查看自己安裝的所有庫,則使用pip list;如果想要卸載某庫,則使用pip uninstall xxx;如果想要更新某庫,則使用pip install --upgrade xxx。

進擊的小球

我將和大家一起來製作一款小遊戲,從而一步一步了解pygame的用法。這款遊戲實現起來非常簡單,沒有超級瑪麗那麼複雜,因為所有的素材我們自己都可以做,我把這款遊戲命名為進擊的小球,效果如下:

玩法:通過鍵盤的↑鍵來控制小球往上走,當鬆開↑鍵時,小球以一定速度向下掉,小球每越過一根棒加1000分,越過一個飛鏢加2000分,當小球碰到棒或者飛鏢時,生命減一,同時還設置了暫停鍵,開始鍵,本局分數和歷史最高分。

實現過程

黑色背景和遊戲名

背景顏色為黑色,遊戲名為進擊的小球。

代碼示例

運行以上程序,就可以看到名為進擊的小球的黑色窗口。

主角登場

下面我們把主角,就是那個綠色的小球給請出來。

首先我們需要一張小球的圖片,我把所有的圖片都放在了images文件下,並且將小球命名為ball

導入圖片

我們首先看看將它顯示在(0,0),也就是左上角的位置的代碼。

也就是說,以左上角為原點,越往右下,坐標就越大,注意這裡的坐標對應的是圖片的左上角。

但是我們不希望小球一開始出現在左上角,我們希望它出現在頂部的中間位置,小球不僅有位置,還有上升和下落的速度等等,考慮到這一點,我們要定義一個Ball類。

這裡我簡單說一下為什麼要繼承pygame.sprite.Sprite,因為這是一個可見遊戲對象的基類,以後可能會用到的碰撞檢測等等都需要用到這個類的一些方法,不僅僅是球類,以後的棒類等等也要繼承它。

然後把小球渲染到屏幕上(注意一定要先填充屏幕,在顯示小球,要不小球會被覆蓋)

這樣,我們就得到了一個位置在頂部中間的小球。

但是,小球總不能呆在頂部中間吧?要不然我們定義的上升速度和下降速度也就沒有意義了,所以我們要給小球添加方法,分別是上升和下降。

實現的方法很簡單,我們的遊戲是小球在屏幕中間上下移動,也就是說小球左邊的位置不變,頂部的位置發生變化即可,所以當小球上升時,頂部位置的坐標減小,下降時,頂部位置的坐標增大。所以上升和下降的方法可以寫為:

方法已經寫好,下面我們來寫控制部分的代碼,我們的思路是這樣的,當按下↑鍵時,小球上升,當鬆開時,小球下降。因為這是一個不斷刷新的過程,我們要寫在while循環中。

來看一下效果

小球的速度稍微快了一點,看起來不太連貫,因為每秒的幀數太高,如果直接改小小球的速度,後面的棒和飛鏢我又怕躲不過,經過多次嘗試,我發現比較好的方法是調低每秒的幀數。

效果

最後附上本節完整代碼

更多精彩內容請關注python小白聯盟哦。

推薦閱讀:

國內知名互聯網公司的創始人學的都是計算機相關專業,會編程更容易成為CEO
「蓄勢·共贏」2018億賽通全國渠道大會勝利召開
中國移動互聯網業:讓思想衝破牢籠 上方網
互聯網界可能會來一個朱雲來
微博用戶群體分類

TAG:Python | Python入門 | 互聯網 |