在pygame中发现了一个奇怪的hitbox错误。如果玩家在我的游戏中死亡,那么点击框会保留,这会产生一些问题

问题描述 投票:0回答:1

我通过弄乱pygame提供的内容找到了sprite.kill()方法。但是,我发现由于某种原因,如果我使用此语句,则玩家的命中箱会停留在杀死玩家的位置。这会产生一些问题,例如,我正在使用一个死亡计数器来跟踪玩家的死亡,因此,如果我死于尖峰,则命中盒将保留下来,因此死亡计数器将不断累加。我的解决方法是将玩家的x和y pos设置在游戏窗口的角落,但是随着我开发游戏的增多,我意识到这将解决我的问题。

感谢您的帮助。

python-3.x pygame pyscripter
1个回答
0
投票

那不是错误。如果在Sprite之外的其他地方引用了Sprite对象,则即使Group,该对象仍然保持活动状态(当然)。 Group不会销毁对象,而只是将所有组中的对象删除。这将导致对象无法通过kill机制进行更新,并且其所有属性均保持不变。如果kill不属于kill,则必须自己更新对象。没有人会神奇地更改属性,当然“命中框仍然存在”

一种解决方案是重写pygame.sprite.Group.update()方法并重置派生类中的某些属性(例如点击框):

pygame.sprite.Group.update()
© www.soinside.com 2019 - 2024. All rights reserved.