【发布时间】:2014-04-14 16:13:46
【问题描述】:
我一直致力于在 pygame 中创建一个小型的太空侵略者风格游戏。我已经快到终点了,但我想做到这一点,如果敌舰与我的船相撞,就会检测到碰撞并结束游戏。
到目前为止,我有用于检测子弹和敌舰何时发生碰撞的代码,但是当我尝试为敌人/玩家碰撞重写此代码时,它没有按预期工作,所以我认为我做错了。
有问题的代码:
for block in block_list:
player_hit_list = pygame.sprite.spritecollide(block, player_list, True)
for player in player_hit_list:
explosion.play()
block_list.remove(block)
player_list.remove(player)
all_sprites_list.remove(block)
all_sprites_list.remove(player)
if block.rect.y < +10:
block_list.remove(block)
all_sprites_list.remove(block)
完整代码:http://pastebin.com/FShPuR6A
有人能告诉我为什么我的代码不起作用吗?
非常感谢
【问题讨论】:
-
实际发生了什么?游戏永远不会退出,玩家就消失了吗?
-
@BartlomiejLewandowski 敌舰照常从玩家身边经过,没有任何东西消失,游戏也没有退出:(
标签: python-3.x pygame collision detection