我目前正在开展个人3D项目。它使用OpenGl和LWJGL,我现在正在实现JBullet。 但是我的KinematicCharacterController(我用于我的第一人称相机)有一个奇怪的行为:如果我在(0; 50; 0)产生它,它将顺利下降,但当它到达地面时,它被传送到上面的几个单位。它再次下降,并被重新传送......它永远不会结束。
当我打印Ghost(PairCachingGhostObject
)的位置时,它显示y轴也在做那些奇怪的事情 - 所以这不是显示问题。另外,当我测试character.onGround()
时,它显示“真实”大约两帧然后“假”而玩家正在下降。
您可以看到full source code。播放器位于entities / Player.java中。 Fps.java包含主循环和初始化的东西。
我不知道是不是因为我没有使用正确的地方(我是一个带子弹的初学者,并遵循demos \ character \ CharacterDemo.java示例),或者它是否来自另一个愚蠢的错误。
如果我做错了,我该怎么办才能处理玩家?我的目标是拥有一个不能穿过物体的非重力世界,我不需要像楼梯处理那样的东西。