資源簡(jiǎn)介
Python的坦克大戰(zhàn)的源代碼,初學(xué)Python的小白練習(xí)和模仿,結(jié)構(gòu)簡(jiǎn)單,明了,易懂。工程文件分開(kāi)建造,測(cè)試階段合理

代碼片段和文件信息
‘‘‘
新增功能:
?????優(yōu)化:1.如果子彈碰到墻壁,讓子彈消失
???????????2.最多可以發(fā)射3顆子彈,不能一直發(fā)射
‘‘‘
#導(dǎo)入pygame模塊
import?pygametimerandom
SCREEN_WIDTH=700
SCREEN_HEIGHT=500
BG_COLOR=pygame.Color(000)
TEXT_COLOR=pygame.Color(25500)
class?MainGame():
????window=None
????my_tank=None
????#存儲(chǔ)敵方坦克的列表
????enemyTankList=[]
????#定義敵方坦克的數(shù)量
????enemyTankCount=5
????#存儲(chǔ)我方子彈的列表
????myBulletList=[]
????def?__init__(self):
????????pass
????#開(kāi)始游戲
????def?startGame(self):
????????#加載主窗口
????????#初始化窗口
????????pygame.display.init()
????????#設(shè)置窗口的大小及顯示
????????MainGame.window=pygame.display.set_mode([SCREEN_WIDTHSCREEN_HEIGHT])
????????#初始化我方坦克
????????MainGame.my_tank=Tank(350250)
????????#初始化敵方坦克,并將敵方坦克添加到列表中
????????self.createEnemyTank()
????????#設(shè)置窗口的標(biāo)題
????????pygame.display.set_caption(‘坦克大戰(zhàn)1.03‘)
????????while?True:
????????????#使用坦克移動(dòng)的速度慢一點(diǎn)
????????????time.sleep(0.02)
????????????#給窗口設(shè)置填充色
????????????MainGame.window.fill(BG_COLOR)
????????????#獲取事件
????????????self.getEvent()
????????????#繪制文字
????????????MainGame.window.blit(self.getTextSuface(‘?dāng)撤教箍耸S鄶?shù)量%d‘%len(MainGame.enemyTankList))(1010))
????????????#調(diào)用坦克顯示的方法
????????????MainGame.my_tank.displayTank()
????????????#循環(huán)遍歷敵方坦克列表,展示敵方坦克
????????????self.blitEnemyTank()
????????????#循環(huán)遍歷顯示我方坦克的子彈
????????????self.blitMyBullet()
????????????#調(diào)用移動(dòng)方法
????????????#如果坦克的開(kāi)關(guān)是開(kāi)啟,才可以移動(dòng)
????????????if?not?MainGame.my_tank.stop:
????????????????MainGame.my_tank.move()
????????????pygame.display.update()
????#?初始化敵方坦克,并將敵方坦克添加到列表中
????def?createEnemyTank(self):
????????top=100
????????#循環(huán)生成敵方坦克
????????for?i?in?range(MainGame.enemyTankCount):
????????????left=random.randint(0600)
????????????speed=random.randint(14)
????????????enemy=EnemyTank(lefttopspeed)
????????????MainGame.enemyTankList.append(enemy)
????#?循環(huán)遍歷敵方坦克列表,展示敵方坦克
????def??blitEnemyTank(self):
????????for?enemyTank?in?MainGame.enemyTankList:
????????????enemyTank.displayTank()
????????????enemyTank.randMove()
????#循環(huán)遍歷我方子彈存儲(chǔ)列表
????def?blitMyBullet(self):
????????for?myBullet?in?MainGame.myBulletList:
????????????#判斷當(dāng)前的子彈是否是活著狀態(tài),如果是則進(jìn)行顯示及移動(dòng),
????????????if?myBullet.live:
????????????????myBullet.displayBullet()
????????????????#?調(diào)用子彈的移動(dòng)方法
????????????????myBullet.move()
????????????#?否則在列表中刪除
????????????else:
????????????????MainGame.myBulletList.remove(myBullet)
????#結(jié)束游戲
????def?endGame(self):
????????print(‘謝謝使用,歡迎再次使用‘)
????????exit()
????#左上角文字的繪制
????def?getTextSuface(selftext):
????????#初始化字體模塊
????????pygame.font.init()
????????#查看所有的字體名稱
????????#?print(pygame.font.get_fonts())
????????#獲取字體Font對(duì)象
????????font=pygame.font.SysFont(‘kaiti‘18)
????????#繪制文字信息
????????textSurface=font.render(textTrueTEXT_COLOR)
????????return?textSurface
????#獲取事件
????def?getEvent(self):
????????#獲取所有事件
????????eventList=?pygame.event.get()
????????#遍歷事件
????????for?event?in?eventList:
????????????#判斷按下的鍵是關(guān)閉還是鍵盤(pán)按下
????????????#如果按的是退出,關(guān)閉窗口
????????????if?event.ty
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????744??2019-06-12?09:11??代碼\img\blast0.gif
?????文件???????1968??2019-06-12?09:11??代碼\img\blast1.gif
?????文件???????2683??2019-06-12?09:11??代碼\img\blast2.gif
?????文件???????3740??2019-06-12?09:11??代碼\img\blast3.gif
?????文件???????5686??2019-06-12?09:11??代碼\img\blast4.gif
?????文件???????3716??2019-06-12?09:11??代碼\img\enemy1D.gif
?????文件???????3722??2019-06-12?09:11??代碼\img\enemy1L.gif
?????文件???????3735??2019-06-12?09:11??代碼\img\enemy1R.gif
?????文件???????3707??2019-06-12?09:11??代碼\img\enemy1U.gif
?????文件????????377??2019-06-12?09:11??代碼\img\enemymissile.gif
?????文件??????69216??2019-06-12?09:11??代碼\img\fire.wav
?????文件??????23136??2019-06-12?09:11??代碼\img\hit.wav
?????文件???????3512??2019-06-12?09:11??代碼\img\p1tankD.gif
?????文件???????3595??2019-06-12?09:11??代碼\img\p1tankL.gif
?????文件???????3590??2019-06-12?09:11??代碼\img\p1tankR.gif
?????文件???????3506??2019-06-12?09:11??代碼\img\p1tankU.gif
?????文件?????883296??2019-06-12?09:11??代碼\img\start.wav
?????文件???????1769??2019-06-12?09:11??代碼\img\steels.gif
?????文件??????12276??2019-06-12?09:11??代碼\tank15.py
?????文件??????13306??2019-06-12?09:11??代碼\tank16.py
?????文件??????14397??2019-06-12?09:11??代碼\tank17.py
?????文件??????15906??2019-06-12?09:11??代碼\tank18.py
?????文件??????17176??2019-06-12?09:11??代碼\tank19.py
?????文件??????17635??2019-06-12?09:11??代碼\tank20.py
?????文件??????18637??2019-06-12?09:11??代碼\tank21.py
?????文件??????19474??2019-06-12?09:11??代碼\tank22.py
?????文件??????20246??2019-06-12?09:11??代碼\tank23.py
?????文件??????21130??2019-06-12?09:11??代碼\tank24.py
?????文件??????21484??2019-06-12?09:11??代碼\tank25.py
?????目錄??????????0??2019-06-12?09:11??代碼\img
............此處省略4個(gè)文件信息
評(píng)論
共有 條評(píng)論