利用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億賽通全國渠道大會勝利召開
※中國移動互聯網業:讓思想衝破牢籠 上方網
※互聯網界可能會來一個朱雲來
※微博用戶群體分類