Python Pygame扩展精灵有碰撞问题

Python Pygame扩展精灵有碰撞问题,python,pygame,sprite,Python,Pygame,Sprite,我正在制作一个游戏,两个玩家用坦克互相射击,试图杀死另一个玩家。我目前的系统使用一颗子弹飞向目标,一旦它击中地面,就会产生一个爆炸精灵,它会随着时间的推移而扩展。我现在有一个问题,膨胀的爆炸精灵会在到达坦克之前与坦克发生碰撞。这是一个问题,因为我希望根据爆炸精灵离坦克的距离扣除伤害。 这是我当前的代码: def explode(self, x, y, alive): explosionList.add(self) explosionList.draw(gameDisplay)

我正在制作一个游戏,两个玩家用坦克互相射击,试图杀死另一个玩家。我目前的系统使用一颗子弹飞向目标,一旦它击中地面,就会产生一个爆炸精灵,它会随着时间的推移而扩展。我现在有一个问题,膨胀的爆炸精灵会在到达坦克之前与坦克发生碰撞。这是一个问题,因为我希望根据爆炸精灵离坦克的距离扣除伤害。 这是我当前的代码:

def explode(self, x, y, alive):
    explosionList.add(self)
    explosionList.draw(gameDisplay)
    self.rect.center = x, y
    damage = 100
    collideTank = pygame.sprite.spritecollide(self, tankList, False)
    tank = False
    for i in range(20):
        damage -= 5
        time.sleep(0.01)
        if len(collideTank) > 0 and tank == False:
            tank = True
            collideTank[0].damageTank(alive, damage)
        self.image = explosionImage
        self.image = pygame.transform.scale(self.image, ((i + 1) * 3, (i + 1) * 3))
        self.rect = self.image.get_rect(center = self.rect.center)
        explosionList.clear(gameDisplay, background)
        explosionList.draw(gameDisplay)
        pygame.display.update()
    explosionList.clear(gameDisplay, background)
使用两个精灵的
rect
确定碰撞。这两个矩形很可能重叠,即使图形上另有说明。您可能会考虑较小的<>代码> Rect< /Cord>精灵的表示,或者使用

pygame.sprite.collide_circle(left, right)
可能会有帮助。

请发一封邮件。
pygame.sprite.collide_circle(left, right)