实战小例子 | 经典坦克大战的python实现
?
 
目錄
- 效果展示
- 開發工具
- 講解部分
- 一:游戲介紹
- 二:主體構成(地圖講解為主)
- 三:游戲的進階
 
- 相關資源 代碼獲取
效果展示
開發工具
編譯器:python3.6.4
主要的第三方庫:pygame
講解部分
一:游戲介紹
其實這個游戲根本就不用介紹,大家都懂
二:主體構成(地圖講解為主)
關于如何用python寫游戲,其實已經講過很多次了。一些基礎的內容可以看以前發的(沒來及發的都會陸陸續續發上來)。
這里只講一講這個游戲的特別之處,我之所以推薦這個坦克大戰,是因為游戲都是一個又一個方塊構成的。
只是這里面的游戲元素更多,有己方坦克,對方坦克,墻壁,草地,老鷹之類的。
如何構成這樣的有界面呢?用最簡單的話來說,就是在適當的時刻,在適當的坐標點上畫適當的圖像。
那么如何將圖像畫在界面上呢?
…
此處省略1000字
…
這些內容在之前的游戲推文中講的很詳細了。
之前每次講游戲的時候,都會重點講一講按鍵操作,在這次的游戲講解中,我決定不講按鍵操作了,講一個大家普遍不注意的問題。那就是游戲地圖。
說到游戲地圖,大家首先想到的肯定是那種精美的3D游戲的圖,但是在普通的小游戲中,游戲地圖可以非常簡單。這個游戲的地圖就是用一個非常簡單的矩陣表示的。
# 地圖 MAP_ONE = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],[0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 3, 3, 1, 1, 2, 1, 1, 3, 3, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 3, 3, 1, 1, 2, 1, 1, 3, 3, 1, 0, 0, 1, 0, ],[0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, ],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ],[1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, ],[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, ],[0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, ],[0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, ],[0, 1, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 1, 0, ],[0, 1, 3, 3, 3, 1, 0, 0, 1, 1, 1, 0, 0, 1, 3, 3, 3, 1, 0, ],[0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, ], ]這段代碼放在這里,內行看到的根本就不是一個矩陣,而是這個
大家看到的矩陣里面大多數地方都是0,這很正常,如果這個矩陣的這個位置是0,代表的意思是這個矩陣的這個位置是空白的,什么也沒有。如果是1,代表這個地方是一個紅色的磚墻,2代表的是炮彈也打不穿的鐵墻,3代表的是可以藏身的草地,5代表的就是老鷹。
如果你需要讓這個游戲豐富起來,想設置更多的游戲地圖,有個很簡單的方法,直接在代碼里面修改這個矩陣即可。
不行你可以嘗試一下,把這個矩陣里面的數字打亂,那么出現在你面前的絕對是一個亂七八糟的圖。
三:游戲的進階
玩這個游戲的時候,大家也許會注意到。敵方坦克發射炮彈和移動都是隨機的,這導致地方戰斗力過差。很容易被我方坦克擊破。如果感興趣的朋友,可以想個辦法,讓地方的坦克能夠尋找目標,然后定向開炮。
另外就是,敵方坦克被擊破以后無法復活,這顯然是沒法長時間玩的,所以可以加一個復活的功能。
如果是聯機對戰,還可以加一個埋地雷的功能。
相關資源 代碼獲取
1:掃碼添加下方名片,備注“經典坦克大戰2 ”可獲取源代碼。
2:我整理了一份Python的案例干貨,超過50個類目,可領取
?
總結
以上是生活随笔為你收集整理的实战小例子 | 经典坦克大战的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 51nod-1682 中位数计数
- 下一篇: 多读书,更要多多悦读
