Pygame 依葫蘆畫瓢之兔獾大戰

2022-04-05 20:34:07 字數 1373 閱讀 7078

前幾天看到國外乙個12歲的孩子寫的兔獾大戰遊戲,心生敬佩,想當年我還是12歲的時候還不知電腦為何物,連小霸王都未曾玩過。自己也未曾想去搞遊戲開發,純屬自娛自樂。在此心態下,依葫蘆畫瓢重新架構了一下該遊戲。

1. 參考資料

2.garfielt 翻譯的青少年如何使用 python 開始遊戲開發

2. 遊戲介紹

此遊戲基本思想是兔子和敵人獾之間的戰鬥故事,兔子需要保護自己的窩(城堡)不被獾侵入,通過自己的**(箭)殺死來犯之敵。在此過程中,兔子可通過殺死的敵人數累積自己的分數值,如果分數累加到設定win值,則gamewin;箭碰到獾之後,檢測是否擊中(檢測碰撞區域),如果擊中則獾和箭同時消失;獾隨機生成,並以一定的速度向城堡進攻,如果與兔子相撞,則gameover,否則當進入城堡後(檢測碰撞區域)隨機降低城堡的生命值,當城堡生命值降為零時gameover。

3.精靈介紹

從上述遊戲介紹中,我們可知遊戲基本精靈有:兔子,獾,城堡,箭。所以就這四類精靈分別封裝相應的精靈子類,該子類繼承自pygame.sprite.sprite。這樣以便在遊戲操作中控制精靈。

4.主遊戲

與原始程式相比,我在此基礎上稍微改進了一下,改進的地方如下:

1). 引入乙個bb類,對所有操作進行封裝。

2). 更改遊戲策略,原先遊戲是通過滑鼠點選來發射**,並通過移動滑鼠來改變兔子的方向,改進後的遊戲是自己發射**(借鑑kill >console的思路),並去掉滑鼠改變兔子方向的操作,此動作一開始我也加入了,但在呼叫pygame.transform.rotate時出現out of memory錯誤,所以後來又把它刪除了。

3). 原始遊戲通過計時來控制遊戲進度,改進後使用分數來控制進度,我覺得這樣簡便些。

4). 兔子的移動控制也借鑑了kill console的思路,在此感謝他的工作。

5. 遊戲效果

**5.1 遊戲介面**

**5.2 gameover介面**

**5.3 gamewin介面**

**6. 遊戲****

遊戲**分兩個檔案,乙個檔案bb.py為主程式**,另乙個檔案bbsprite.py為遊戲精靈封裝**。所有**和遊戲所需資源都放在github中,鏈結如下:

開發經驗分享 05 葫蘆畫瓢

二 壘積木 三 模擬除錯 明確功能點分布在頁面的大體位置,可以先把整個布局分布大體先部署好,再微調頁面即可。上面把的布局部署好了,功能點的分布區域也明確了,按照功能點的遞進關係,誰依賴誰,先易後難,功能點乙個乙個實現,逐個攻破即可。首要前提 把功能實現完成後,把需要的資料現在程式中寫死,先把功能除錯...

照葫蘆畫瓢 模板方法模式

模板方法模式在乙個方法中定義了乙個演算法骨架,而將一些步驟延遲到子類中實現。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟 輸出結果 load mysql driver get mysql connection query mysql close mysql 優點缺點模板...

比葫蘆畫瓢,oracle 為多表批量增加字段

每個表都要增加如下六個字段 select alter table object name add created by varchar2 32 from user objects t where object type in table union select alter table object...