Python實作坦克大戰
一、前言
前段時間,也就是國慶節,在寢室閑來無事,用pygame寫了一個小游戲,就是標題寫的《坦克大戰》,這個游戲寫了兩個版本,第一個版本是按照書上的思想來寫的,發現寫到后面的時候代碼太亂了,于是我又從頭開始,用比較合理的面向物件思想重新寫了一個版本,說比較合理也只是符合我自己的思想,所以難免會有一些不合理的設計,水平有限,希望各位讀者能夠包涵一下,
二、開發環境
我們先來看看我的開發環境,用的東西還是比較簡單的:
作者:Zack
時間:2020年10月16日
集成開發工具:pycharm 2020
開發環境:python 3.7.9
第三方模塊:pygame
其中我還用了一些第三方模塊,但是在游戲主體中沒有使用,所以就先不介紹了,下面我們來看看游戲實作了些什么功能,
三、專案介紹
3.1 專案截圖
我們主程式入口在main.py檔案,在安裝好pygame模塊后就能直接運行,下面是運行截圖:

下面是子彈擊中墻壁的爆炸效果:

下面是多個敵方坦克的效果圖:

我們再來看看專案的各個檔案,
3.2 專案檔案
下面是專案目錄:

(1)resources
其中resources是資源檔案,音頻、圖片等都在resources目錄,而tools中提供了兩個小工具,因為只是供個人臨時使用的,這里不過多解釋了,
(2)main.py
而main.py則是專案的主入口,代碼很短:
from tank_war import TankWar
if __name__ == '__main__':
tankWar = TankWar()
tankWar.run_game()
我們直接創建了TankWar的實體,然后呼叫run_game方法運行游戲,
(3)tank_war.py
tank_war.py中寫了我們坦克大戰游戲主體的模塊,里面的TankWar類定義了游戲主體的一切行為,包括初始化螢屏、初始化pygame模塊、創建敵方坦克、繪制地圖、檢測碰撞、監聽事件等,
(4)sprites.py
在pygame中提供了一個sprite類用于創建有影像的物體,而sprites中定義的都是sprite的子類,因此也都是有圖片的類,其中包括坦克基類、英雄類(我方坦克)、敵人類(敵方坦克)、子彈類、墻類等,
而各個類中定義了各自的行為,例如:坦克類有發射子彈的行為、移動的行為、爆炸的行為等,
(5)settings.py
settings.py中定義了一些設定資訊,包括子彈的數量、子彈的速度、坦克的速度、地圖資訊、圖片資訊等,我們可以通過修改settings.py來調整游戲的一些設定,因為還沒有寫設定相關的操作,所以需要修改原始碼,
因為代碼比較多,這里就不介紹代碼了,游戲還要許多不足之處,后續會繼續更新,專案已上傳GitHub,歡迎各位來fork,今天就介紹到這里了~
專案地址:https://github.com/IronSpiderMan/TankWar
pygame檔案地址:https://www.pygame.org/docs/
本文來源公眾號:新建檔案夾X,轉載請標明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/176152.html
標籤:其他
上一篇:阿里云,華為云哪個更好?
下一篇:小 X 的液體混合
