PyGame:同一列表中的两个精灵碰撞

时间:2014-01-20 19:35:34

标签: python python-2.7 python-3.x pygame

在我正在制作的游戏中,我试图让同一列表中的敌人不会相互碰撞。我用来尝试让它工作的代码在这里:

for m in self.meteors:
    if pygame.sprite.collide_rect(m, m):
        self.velX = 0
    else:
        self.velY = 0

我不知道为什么这不起作用。它询问两个流星是否发生碰撞并且在那里停止X速度或Y速度。任何帮助将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

你不应该使用双循环吗?

for index1, meteor1 in enumerate(self.meteors):
    for index2, meteor2 in enumerate(self.meteors):
        if index1 != index2:
            if pygame.sprite.collide_rect(meteor1, meteor2):
                self.velX = 0
            else:
                self.velY = 0