微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何克服Pygame中因加速导致精灵侵入地板的问题?

如何解决如何克服Pygame中因加速导致精灵侵入地板的问题?

我正在尝试编写我的 Pygame 游戏代码,以便玩家在不接触地板的任何时候摔倒。问题是编码它的方法是测试玩家 y 坐标是否低于 0,然后停止下降过程,但是 cuadratic 函数并不总是会精确到 y = 0,因为它每次移动更多像素帧,也许第一个小于 0 的值是 -10。然后玩家最终出现在屏幕下方。

我考虑过测试玩家的 y 坐标是否低于 0,然后将他传送到 y = 0,但这感觉是一个非常不优雅的解决方案,而且它还使玩家传送了一帧。

解决方法

“我想过测试玩家的 y 坐标是否低于 0,然后将他传送到 y = 0,但这感觉是一个非常不优雅的解决方案”

这是通常的方式。碰撞阻止玩家坠落。

“它还使玩家传送一帧。”

不,不是。您必须在碰撞检测之后和绘制之前“传送”播放器层。

您在每一帧中都进行一次碰撞检测。一旦检测到碰撞,您就知道玩家自上一帧以来在移动时在某个点碰到了物体。您不是计算玩家击中物体并停止移动的确切时间,而是通过物体限制玩家的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。