所以我正在运行一个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行代码(也许写得不太有效),所以在这一点上,我正在处理不同的部分,以决定它是如何工作的。
如果您需要任何额外信息,请询问!
提前致谢。
答案 0 :(得分:2)
minuspoints
列表包含与player
发生冲突的怪物,因此您只需在hit.rect.center
位置播放爆炸动画即可。我建议将变量名称minuspoints
和hit
更改为collided_mobs
和mob
。
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`.