Python實現坦克大戰
發表時間:2020-10-19
發布人:葵宇科技
浏覽次數:40
Python實現坦克大年夜戰
一、媒介
前段時光,也就是國慶節。在卧室閑來無事,用pygame寫了一個(gè)小遊戲,就是标題寫的《坦克大年夜戰》。這個(gè)遊戲寫了兩個(gè)版本,第一個(gè)版本是按照書上的思惟來寫的,發明寫到後面的時刻代碼太亂了。于是我又大年夜頭開端,用比較合理的面向對象思惟從新寫了一個(gè)版本。說比較合理也執偾相符我本身的思惟,所以不免會有一些不合理的設計,程度有限,欲望各位讀者可(kě)以或許諒解一下(xià)。
二、開辟情況
我們先來看看我的開辟情況,用的器(qì)械照樣比較簡單的:
作者:Zack
時光:2020年10月(yuè)16日
集成開辟對象:pycharm 2020
開辟情況:python 3.7.9
第三方模塊:pygame
個(gè)中(zhōng)我還用了一些第三方模塊,然則在遊戲主體中(zhōng)沒有應用,所以就先不介紹了。下(xià)面我們來看看竽暌刮戲實現了些什麼功能。
三、項目介紹
3.1 項目截圖
我們主法度榜樣人口在main.py文(wén)件,在安裝好pygame模塊後就能直接運行。下(xià)面是運行截圖:
下(xià)面是槍彈擊中(zhōng)牆壁的爆炸效不雅:
下(xià)面是多個(gè)敵方坦克的效不雅圖:
我們再來看看項目标各個(gè)文(wén)件。
3.2 項目文(wén)件
下(xià)面是項目目次:
(1)resources
個(gè)中(zhōng)resources是資(zī)本文(wén)件,音頻、圖片等都在resources目次。而tools中(zhōng)供給了兩個(gè)小對象,因為隻是供小我臨時應用的,這裡不過多說清楚明了。
(2)main.py
而main.py則是項目标主人口,代碼很短(duǎn):
from tank_war import TankWar
if __name__ == '__main__':
tankWar = TankWar()
tankWar.run_game()
我們直接創建了TankWar的實例,然後調用run_game辦法運行遊戲。
(3)tank_war.py
tank_war.py中(zhōng)寫了我們坦克大年夜戰遊戲主體的模塊,琅绫擎的TankWar類定義了遊戲主體的一切行動(dòng)。包含初始化屏幕、初始化pygame模塊、創建敵方坦克、繪制地圖、檢測碰撞、監聽事宜等。
(4)sprites.py
在pygame中(zhōng)供給了一個(gè)sprite類用于創建有圖像的物體。而sprites中(zhōng)定義的都是sprite的子(zǐ)類,是以也都是有圖片的類。個(gè)中(zhōng)包含坦克基類、豪傑類(我方坦克)、仇敵類(敵方坦克)、槍彈類、牆類等。
而各個(gè)類中(zhōng)定義了各自的行動(dòng),例如(rú):坦渴攀類有發射槍彈的行動(dòng)、移動(dòng)的行動(dòng)、爆炸的行動(dòng)等。
(5)settings.py
settings.py中(zhōng)定義了一些設置信息,包含槍彈的數量、槍彈的速度、坦克的速度、地圖信息、圖片信息等。我們可(kě)以經由過程修改settings.py來調劑遊戲的一些設置,因為還沒有寫設置相幹的操作,所以須要修改源碼。
因為代碼比較多,這裡就不介紹代碼了。遊戲還要很多不足之處,後續會持續更新。項目已上傳GitHub,迎接各位來fork。今天就介紹到這裡了~
項目地址:https://github.com/IronSpiderMan/TankWar
pygame文(wén)檔地址:https://www.pygame.org/docs/
本文(wén)來源"大衆,"号:新建文(wén)件夾X,轉載請标明出處。