首页 文章

步骤停止后,Box2d机身移动得更快,并在暂停时重新启动[Android]

提问于
浏览
2

我正在使用NDK中的Box2d物理引擎在android中编写游戏 . 所以物理完全在本土世界,但绘图仍然在Java世界 .

在我的游戏中,我有一个更新线程,用于处理物理世界并使画布无效以进行重绘 . 到现在为止还挺好 . 当用户希望暂停游戏时,我会停止所有线程 . 然后,用户可以选择“恢复”游戏,这将重新启动线程,游戏将从停止的位置开始 .

出于某种原因,当游戏恢复时,物理中的物体移动得更快 . 如果它的时间步进被停止并重新启动,为什么身体会发生任何变化?

暂停后再次调用step()会有问题吗?短暂停顿后,身体的速度,质量,摩擦力,密度是否会发生变化 .

任何帮助表示赞赏谢谢

1 回答

  • 1

    这个问题已经过时了,但万一你还没有解决它,我会想到一些想法:

    • 您是否将常量值传递给step()?如果你通过了,那可能是你的问题 .

    • 你确定你只创建一个线程吗?当你恢复时,如果你恢复旧线程并意外地创建另一个,你可以得到2倍的更新 .

    • 如何将帧速率锁定为实时 - 是否有可能在恢复时重置"last update"值,然后每次更新都会成功,无论是否已经过了这么多时间 .

相关问题