加速精灵套件的物理时钟



我有一个使用spritkit物理世界的动画。我一直在寻找是否有一种方法可以"快进"物理,只需在不显示动画的情况下获得结果或路径。我看了看《物理世界》,没有看到任何关于这个的东西?你知道我该怎么做吗?

基本上,我想在用户决定执行之前向他们显示动画的最终位置。

显然您错过了SKPhysicsWorld:中的speed属性

默认值为1.0,这意味着模拟在正常情况下运行速度默认值以外的值会更改时间的速率通过物理模拟。例如,速度值为2.0表示物理模拟中的时间流逝速度是场景的模拟时间。值0.0会暂停物理模拟

请记住,这将影响所有主体,并且没有内置的方法将系统重置为以前的状态。此外,模拟必须至少前进1步才能看到更改,因此您必须在updatedidEvaluateActions方法中将速度属性设置为30,并在didSimulatePhysics中将其重置回1。这也是检查快进步骤结果的方法。

如果物体以固定的速度移动,并且不会受到碰撞或重力等任何影响,你可以使用纯三角法(不需要速度属性)来计算物体在n步中的位置,或者物体移动至少n距离需要多少步。

在身体到达某个目的地之前,我想不出前进的方法,在这个目的地,身体不会以固定的速度移动,如果不进行物理模拟,你就无法简单地预测到达时间。这需要能够独立于场景的其他部分来推进世界(并通过暂停来保护身体,防止身体真正到达那里),这只有通过第三方物理引擎才能实现。你仍然可以使用Box2D或花栗鼠与精灵套件。

最新更新