标题: 【Pygame 第11课】 GAME OVER [打印本页] 作者: crossin先生 时间: 2013-9-5 19:18 标题: 【Pygame 第11课】 GAME OVER 继续我们的打飞机游戏。完成了子弹和敌机之间的碰撞检测之后,自然还要来处理敌机与本体之间的碰撞检测,这决定了游戏是否结束。
#创建敌机list
enemies = []
#添加5个敌机
for i in range(5):
enemies.append(Enemy())
#增加记录游戏是否结束变量
gameover = False
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(background, (0, 0))
#当gameover为False时,游戏逻辑正常运行
if not gameover:
#发射间隔递减
interval_b -= 1
#当间隔小于0时,激活已发子弹
if interval_b < 0:
bullets[index_b].restart()
#重置间隔时间
interval_b = 200
#子弹序号周期性递减
index_b = (index_b + 1) % count_b
#判断每个子弹的状态
for b in bullets:
#处于激活状态的子弹,移动位置并绘制
if b.active:
#检查每一刻active的子弹是否与敌机碰撞
for e in enemies:
checkHit(e,b)
b.move()
screen.blit(b.image,(b.x,b.y))
for e in enemies:
#如果撞上敌机,设gameover为True
if checkCrash(e, plane):
gameover = True
e.move()
screen.blit(e.image,(e.x,e.y))
#检查本体的运动
plane.move()
screen.blit(plane.image,(plane.x,plane.y))
else:
#待处理
pass
pygame.display.update()作者: crossin先生 时间: 2018-8-6 23:45