如何在pygame中同时获取两个sprite对象?

时间:2017-08-20 15:18:08

标签: python pygame sprite

如果发生碰撞,有没有办法获得两个对象?

例如:

allSprite = pygame.sprite.Group()
Bullets = pygame.sprite.Group()
Enemies = pygame.sprite.Group()

bullet = Bullet()
enemy = Enemy()
Bullets.add(bullet)
Enemies.add(enemy)

hits = pygame.sprite.collide(Enemies,Bullets)
for hit in hits:
    hit.damage()

这只获取Enemy对象,但我想要两个对象,因为我也需要子弹伤害。

1 个答案:

答案 0 :(得分:1)

您可以使用groupcollide功能: http://www.pygame.org/docs/ref/sprite.html#pygame.sprite.groupcollide

你会得到一个敌人(钥匙)字典,并为每个敌人,一个击中它的子弹列表(值)。然后你可以做这样的事情:

hits = pygame.sprite.groupcollide(Enemies, Bullets, False, True)
for enemy in hits:
    for bullet in hits[enemy]:
        enemy.damage(bullet.damage)