因此,我正在运行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行代码(也许编写的效率不高),所以在这一点上,我要花很多时间来思考这是如何工作的。
如果您需要任何其他信息,请询问!
提前致谢。
最佳答案
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`.
关于python - Sprite 碰撞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44088756/