精灵碰撞

时间:2017-05-20 17:15:05

标签: python pygame

所以我正在运行一个collide_mask检查,删除与玩家精灵碰撞的暴徒实例..它运行正常。

pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask)

我正在努力解决的问题是让爆炸动画发生在特定的'暴徒'怪物'位置。

minuspoints = pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask)
    for hit in minuspoints:
        life-=5
        score+=1
        if cash-1>=0:
            cash-=1
        else:
            life-=5
        enemies-=1
        if moo==0:
            collision.play()
            ensmallpop.play()

        # Check which mob was hit
        for m in mobs:
            pass

#popAnim
        popco = m.update(pos)

如何确定击中了哪些暴徒?

我有1700行代码(也许写得不太有效),所以在这一点上,我正在处理不同的部分,以决定它是如何工作的。

如果您需要任何额外信息,请询问!

提前致谢。

1 个答案:

答案 0 :(得分:2)

minuspoints列表包含与player发生冲突的怪物,因此您只需在hit.rect.center位置播放爆炸动画即可。我建议将变量名称minuspointshit更改为collided_mobsmob

collided_mobs = pygame.sprite.spritecollide(player, mobs, True, pygame.sprite.collide_mask)
for mob in collided_mobs:
    explosion_position = mob.rect.center
    # Now create the explosion at `explosion_position`.