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)