当我在游戏中拖动一个物体时,物体永远不会直接在手指下面。在那里,我无法摆脱这种滞后/延迟。它跟随我的手指而不是直接在它下面。您也可以在Testbed中试用。尝试快速移动对象并且对象永远不会在鼠标/手指下方
这是box2d的弱点吗?或者我错过了一些明显的东西?
提前致谢
答案 0 :(得分:0)
其中大部分与硬件延迟有关。如果你的时间是完全完美的,它们将是由iPhone的GPU引起的16ms滞后,距触摸屏约20ms的延迟,以及你的场景处理所需的时间。所以这些加起来在36-70ms的滞后之间。此外,在鼠标关节的box2d中应用了少量阻尼,以保证物理模拟的稳定性。
答案 1 :(得分:0)
那是因为mouseJoint
类似于distantJoint
(春天)。您可以指定maxForce
参数以最大限度地减少延迟 - 使弹簧更加坚硬。
修改强>
此外,您可以直接移动对象,将其位置指定到手指位置。但是如果这个物体碰撞某物会产生非物理行为,因为物体的速度将为零。
因此要正确移动它(如果会有碰撞),你应该指定它的速度或加速度(如鼠标关节那样)。但要评估你的手指速度,你需要一些时间和延迟。