经典坦克大战的python实现
歡迎加入我們臥虎藏龍的python討論qq群:729683466
導語
看到封面
大家一定覺得很熟悉
這不就是小時候經常玩的坦克大戰嗎
現在有沒有想過用python實現一下
了解一下游戲的內部結構是什么樣的
直接開始吧!!
相關資源 代碼獲取
1:關注“python趣味愛好者”公眾號,回復“經典坦克大戰2 ”獲取源代碼。
?#?效果展示?
# 開發工具
編譯器:python3.6.4
主要的第三方庫:pygame
#往期推薦
#??python小游戲之《躲避太空垃圾》
#??用python做一個“船新”的貪吃蛇
# 講解部分
一:游戲介紹
其實這個游戲根本就不用介紹,大家都懂
二:主體構成(地圖講解為主)
關于如何用python寫游戲,公眾號其實已經講過很多次了。一些基礎的內容可以看公眾號以前發的推文。
《推箱子》python小游戲(第一期)
《推箱子》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代表的就是老鷹。
如果你需要讓這個游戲豐富起來,想設置更多的游戲地圖,有個很簡單的方法,直接在代碼里面修改這個矩陣即可。
不行你可以嘗試一下,把這個矩陣里面的數字打亂,那么出現在你面前的絕對是一個亂七八糟的圖。
三:游戲的進階
玩這個游戲的時候,大家也許會注意到。敵方坦克發射炮彈和移動都是隨機的,這導致地方戰斗力過差。很容易被我方坦克擊破。如果感興趣的朋友,可以想個辦法,讓地方的坦克能夠尋找目標,然后定向開炮。
另外就是,敵方坦克被擊破以后無法復活,這顯然是沒法長時間玩的,所以可以加一個復活的功能。
如果是聯機對戰,還可以加一個埋地雷的功能。
如果以后有時間,我們會一一實現這些功能。
作者|齊
編輯|齊
PYTHON
掃二維碼|關注我們
QQ群:729683466
# 參考來源
代碼來源:github
總結
以上是生活随笔為你收集整理的经典坦克大战的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 批量输出dwg文件中的文本
- 下一篇: python画一颗小心心