我通过弄乱pygame提供的内容找到了sprite.kill()
方法。但是,我发现由于某种原因,如果我使用此语句,则玩家的命中箱会停留在杀死玩家的位置。这会产生一些问题,例如,我正在使用一个死亡计数器来跟踪玩家的死亡,因此,如果我死于尖峰,则命中盒将保留下来,因此死亡计数器将不断累加。我的解决方法是将玩家的x和y pos设置在游戏窗口的角落,但是随着我开发游戏的增多,我意识到这将解决我的问题。
感谢您的帮助。
那不是错误。如果在Sprite
之外的其他地方引用了Sprite
对象,则即使Group
,该对象仍然保持活动状态(当然)。 Group
不会销毁对象,而只是将所有组中的对象删除。这将导致对象无法通过kill
机制进行更新,并且其所有属性均保持不变。如果kill
不属于kill
,则必须自己更新对象。没有人会神奇地更改属性,当然“命中框仍然存在”
一种解决方案是重写pygame.sprite.Group.update()
方法并重置派生类中的某些属性(例如点击框):
pygame.sprite.Group.update()