这是我的程序中的一个例外代码。第一个块处理射击+敌人的碰撞,第二个处理地雷+敌人的碰撞,第三个实际产生新的波浪。目前,初始波大小会产生 10 个敌人,并且游戏循环不会在第一波之后产生新的敌人。
# baddie and shot collision
removed = False
for a in baddies[:]:
for b in shots[:]:
if a.imgRect.colliderect(b.imgRect):
shots.remove(b)
a.toughness -= 1
if a.toughness < 1:
baddies.remove(a)
removed = True
print str(wavesize)
break
# baddie and mine collision
removed = False
for a in baddies[:]:
for b in mines[:]:
if a.imgRect.colliderect(b.imgRect):
mines.remove(b)
a.toughness -= 1
if a.toughness < 1:
baddies.remove(a)
removed = True
break
if removed:
wavesize -= 1
if wavesize < 1:
loopcount += 1
wavesize = 10+(loopcount*5)
baddies = createNewWave(wavesize)