如果发生碰撞,有没有办法获得两个对象?
例如:
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
对象,但我想要两个对象,因为我也需要子弹伤害。
答案 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)