Python程式碼實現“FlappyBird”小遊戲
開發工具
Python版本:3.6.4
相關模組:
pygame模組;
以及一些Python自帶的模組。
相關檔案
關注公眾號:Python學習指南,回覆“FlappyBird”獲取
環境搭建
安裝Python並新增到環境變數,pip安裝需要的相關模組即可。
原理介紹
FlappyBird遊戲簡介:
玩家通過空格鍵控制一隻小鳥,使其跨越由各種不同長度水管所組成的障礙物,當小鳥碰撞到障礙物或跌至螢幕最底端時,遊戲結束。
逐步實現:
Step1:定義精靈類
為了方便實現小鳥和水管之間碰撞的檢測,我們先定義一些精靈類,包括:
① 小鳥類
隨著遊戲時間的推移,小鳥應當具有更新自身位置的能力,即當玩家按下空格鍵時,小鳥向上跳躍,否則小鳥向下墜落。另外,為了使遊戲場景更加真實,小鳥在向上跳躍或者向下墜落之前,應當先調整身體角度。具體程式碼實現如下:
② 管道類
管道分為管道體和管道頭。管道頭:
管道體:
可先簡單定義如下:
顯然,一個管道頭和若干個管道體組成了一個管道障礙物,管道障礙物兩兩同列,兩者之間留有一定的空間供小鳥穿過,就像這樣:
因此,我們定義一個大的管道類,以便構建一個完整的管道障礙物,程式碼實現如下:
其中,更新管道的作用為通過管道的左移來實現小鳥不斷右移的效果。
Step2:實現遊戲主迴圈
先初始化,載入圖片、音樂、字型等檔案,並定義一些必要的常量:
現在就可以開始定義遊戲主迴圈了!遊戲主迴圈的邏輯十分簡單,先顯示遊戲背景,然後根據玩家的操作更新小鳥位置,自動更新管道位置,並通過碰撞檢測以及小鳥的縱座標來判斷遊戲是否結束,若遊戲結束,則顯示遊戲結束畫面。當然你也需要根據玩家通過的管道數量來實時更新玩家當前的分數,這一步需寫在最後,否則分數會被管道所遮蓋,這顯然是不合理的,具體實現如下:
All Done!
相關文章
- 100行Python程式碼實現貪吃蛇小遊戲(超詳細)Python遊戲
- python手機版做小遊戲程式碼大全-python簡單小遊戲程式碼 怎麼用Python製作簡單小遊戲...Python遊戲
- python實現超級瑪麗小遊戲(動圖演示+原始碼分享)Python遊戲原始碼
- python之掃雷小遊戲(附程式碼)Python遊戲
- Python實現三子棋小遊戲Python遊戲
- Python課程程式碼實現Python
- Python程式碼實現雙色球原理Python
- 500行 python 程式碼實現模板引擎Python
- 關於Python小遊戲程式Python遊戲
- JavaScript實現垃圾分類小遊戲教程,附原始碼!JavaScript遊戲原始碼
- 一行 Python 程式碼實現並行Python並行
- 20 行 Python 程式碼實現加密通訊Python加密
- Python實現程式碼行數統計工具Python
- 主成分分析(PCA)Python程式碼實現PCAPython
- python開發俄羅斯方塊小遊戲程式碼例項Python遊戲
- canvas吃豆小遊戲程式碼Canvas遊戲
- canvas小遊戲程式碼例項Canvas遊戲
- 70 行 python 程式碼實現桌布批量下載Python
- python 程式碼實現查詢功能介面測試Python
- 1行Python程式碼實現FTP伺服器PythonFTP伺服器
- Python魂鬥羅小遊戲原始碼Python遊戲原始碼
- 只需一行Python程式碼即可玩20幾款小遊戲Python遊戲
- Promise 程式碼實現Promise
- (完整原始碼)貪吃蛇小遊戲——HTML+CSS+JavaScript實現原始碼遊戲HTMLCSSJavaScript
- 實現彩色二維碼程式碼實
- Locust 程式碼指令碼實現指令碼
- 【練習】canvas——flappyBirdCanvasAPP
- 小遊戲群聊分享又有新套路,小程式實現全面佈局遊戲
- 例項程式碼分享Python實現Linux監控PythonLinux
- 利用itchat 10行python程式碼實現微信轟炸Python
- 簡單的python程式碼實現語音朗讀Python
- 支援向量機(SVM)從原理到python程式碼實現Python
- 手寫演算法-python程式碼實現Kmeans演算法Python
- 【整合學習】:Stacking原理以及Python程式碼實現Python
- 50行python程式碼實現的小區塊鏈Python區塊鏈
- Python實現裝飾模式的一段程式碼Python模式
- 21行Python程式碼實現拼寫檢查器Python
- javascript實現前端小遊戲2048JavaScript前端遊戲