資源簡介
利用python開發的坦克大戰源碼加圖片文件,直接可以運行。分享給大家自己下載學習和交流.

代碼片段和文件信息
import?pygametimerandom
_display?=?pygame.display
COLOR_BLACK?=?pygame.Color(0?0?0)
COLOR_RED?=?pygame.Color(255?0?0)
version?=?‘v1.25‘
class?MainGame():
????#游戲主窗口
????window?=?None
????SCREEN_HEIGHT?=?500
????SCREEN_WIDTH?=?800
????#創建我方坦克
????TANK_P1?=?None
????#存儲所有敵方坦克
????EnemyTank_list?=?[]
????#要創建的敵方坦克的數量
????EnemTank_count?=?5
????#存儲我方子彈的列表
????Bullet_list?=?[]
????#存儲敵方子彈的列表
????Enemy_bullet_list?=?[]
????#爆炸效果列表
????Explode_list?=?[]
????#墻壁列表
????Wall_list?=?[]
????#開始游戲方法
????def?startGame(self):
????????_display.init()
????????#創建窗口加載窗口(借鑒官方文檔)
????????MainGame.window?=?_display.set_mode([MainGame.SCREEN_WIDTHMainGame.SCREEN_HEIGHT])
????????self.creatMyTank()
????????self.creatEnemyTank()
????????self.creatWalls()
????????#設置一下游戲標題
????????_display.set_caption(“坦克大戰“+version)
????????#讓窗口持續刷新操作
????????while?True:
????????????#給窗口完成一個填充顏色
????????????MainGame.window.fill(COLOR_BLACK)
????????????#在循環中持續完成事件的獲取
????????????self.getEvent()
????????????#將繪制文字得到的小畫布,粘貼到窗口中
????????????MainGame.window.blit(self.getTextSurface(“剩余敵方坦克%d輛“%len(MainGame.EnemyTank_list))(55))
????????????#調用展示墻壁的方法
????????????self.blitWalls()
????????????if?MainGame.TANK_P1?and?MainGame.TANK_P1.live:
????????????????#?將我方坦克加入到窗口中
????????????????MainGame.TANK_P1.displayTank()
????????????else:
????????????????del?MainGame.TANK_P1
????????????????MainGame.TANK_P1?=?None
????????????#循環展示敵方坦克
????????????self.blitEnemyTank()
????????????#根據坦克的開關狀態調用坦克的移動方法
????????????if?MainGame.TANK_P1?and?not?MainGame.TANK_P1.stop:
????????????????MainGame.TANK_P1.move()
????????????????#調用碰撞墻壁的方法
????????????????MainGame.TANK_P1.hitWalls()
????????????????MainGame.TANK_P1.hitEnemyTank()
????????????#調用渲染子彈列表的一個方法
????????????self.blitBullet()
????????????#調用渲染敵方子彈列表的一個方法
????????????self.blitEnemyBullet()
????????????#調用展示爆炸效果的方法
????????????self.displayExplodes()
????????????time.sleep(0.02)
????????????#窗口的刷新
????????????_display.update()
????#創建我方坦克的方法
????def?creatMyTank(self):
????????#?創建我方坦克
????????MainGame.TANK_P1?=?MyTank(400?300)
????????#創建音樂對象
????????music?=?Music(‘img/start.wav‘)
????????#調用播放音樂方法
????????music.play()
????#創建敵方坦克
????def?creatEnemyTank(self):
????????top?=?100
????????for?i?in?range(MainGame.EnemTank_count):
????????????speed?=?random.randint(36)
????????????#每次都隨機生成一個left值
????????????left?=?random.randint(1?7)
????????????eTank?=?EnemyTank(left*100topspeed)
????????????MainGame.EnemyTank_list.append(eTank)
????#創建墻壁的方法
????def?creatWalls(self):
????????for?i?in?range(6):
????????????wall?=?Wall(130*i240)
????????????MainGame.Wall_list.append(wall)
????def?blitWalls(self):
????????for?wall?in?MainGame.Wall_list:
????????????if?wall.live:
????????????????wall.displayWall()
????????????else:
????????????????MainGame.Wall_list.remove(wall)
????#將敵方坦克加入到窗口中
????def?blitEnemyTank(self):
????????for?eTank?in?MainGame.EnemyTank_list:
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-06-05?08:52??img\
?????文件?????????744??2019-06-05?08:52??img\blast0.gif
?????文件????????1968??2019-06-05?08:52??img\blast1.gif
?????文件????????2683??2019-06-05?08:52??img\blast2.gif
?????文件????????3740??2019-06-05?08:52??img\blast3.gif
?????文件????????5686??2019-06-05?08:52??img\blast4.gif
?????文件????????3716??2019-06-05?08:52??img\enemy1D.gif
?????文件????????3722??2019-06-05?08:52??img\enemy1L.gif
?????文件????????3735??2019-06-05?08:52??img\enemy1R.gif
?????文件????????3707??2019-06-05?08:52??img\enemy1U.gif
?????文件?????????377??2019-06-05?08:52??img\enemymissile.gif
?????文件???????69216??2019-06-05?08:52??img\fire.wav
?????文件???????23136??2019-06-05?08:52??img\hit.wav
?????文件????????3512??2019-06-05?08:52??img\p1tankD.gif
?????文件????????3595??2019-06-05?08:52??img\p1tankL.gif
?????文件????????3590??2019-06-05?08:52??img\p1tankR.gif
?????文件????????3506??2019-06-05?08:52??img\p1tankU.gif
?????文件??????883296??2019-06-05?08:52??img\start.wav
?????文件????????1769??2019-06-05?08:52??img\steels.gif
?????文件???????19262??2019-06-05?08:52??tankall.py
評論
共有 條評論