"""
v1.18
新增功能:
1.实现爆炸效果类
2.在窗口中展示爆炸效果
"""
import pygame,time,random
_display = pygame.display
COLOR_BLACK = pygame.Color(0,0,0)
COLOR_RED = pygame.Color(255,0,0)
version = 'v1.18'
class Maingame():
window = None
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 500
TANK_P1 = None
EnemyTank_list = []
EnemyTank_count = 5
Bullet_list = []
Enemy_bullet_list = []
Explode_List = []
def __init__(self):
pass
def startGame(self):
_display.init()
Maingame.window = _display.set_mode([Maingame.SCREEN_WIDTH,Maingame.SCREEN_HEIGHT])
Maingame.TANK_P1 = Tank(300,400)
self.creatEnemyTank()
_display.set_caption("坦克大战"+version)
while True:
Maingame.window.fill(COLOR_BLACK)
self.getEvent()
Maingame.window.blit(self.getTextSurface("剩余敌方坦克%d辆"%len(Maingame.EnemyTank_list)),(5,5))
Maingame.TANK_P1.displayTank()
self.blitEnemyTank()
if Maingame.TANK_P1 and not Maingame.TANK_P1.stop:
Maingame.TANK_P1.move()
self.blitBullet()
self.blitEnemyBullet()
Maingame.displayExplodes(self)
time.sleep(0.02)
_display.update()
def creatEnemyTank(self):
top = 100
for i in range(Maingame.EnemyTank_count):
speed = random.randint(3, 6)
left = random.randint(1, 7)
eTank = EnemyTank(left*100, top, speed)
Maingame.EnemyTank_list.append(eTank)
def blitEnemyTank(self):
for eTank in Maingame.EnemyTank_list:
if eTank.live:
eTank.displayTank()
eTank.randMove()
eBullet = eTank.shot()
if eBullet:
Maingame.Enemy_bullet_list.append(eBullet)
else:
Maingame.EnemyTank_list.remove(eTank)
def blitBullet(self):
for bullet in Maingame