Box2D 和 Xcode
Box2D and Xcode
我正在使用 LevelHelper
(SpriteKit
+ Box2D
) 开发游戏,但我 运行 遇到了问题。
Box2D
取决于 FPS 的计数。那些如果是60FPS,那么body以每秒10米的速度移动,如果是30FPS,那么就是以每秒5米的速度移动。有必要不管FPS的计数是一个恒定的速度。
有什么解决方案可以解除Box2D
与FPS计数的绑定吗?
关于模拟时间,Box2D 仅取决于您将世界步骤的时间增量设置为多少。如果您将时间增量设置为 1/60 秒,那么它将与 60FPS 显示刷新相匹配,但时间增量可以是其他值。
一般来说,时间增量越小,模拟越准确。因此,如果您不使用模拟 1/60 秒的世界步长,而是使用模拟 1/120 秒的步长,您将获得更准确的模拟。使用较小的时间增量,还可以使主体的最大速度(每模拟秒行进的距离)更快。
由 Box2D 库用户决定如何协调世界步骤与显示刷新。只要知道改变世界步进时间——比如通过使用调用世界步进方法之间的实时时间间隔——可能会导致不切实际的物理效果。因此,虽然在模拟期间可以在 运行 时间改变世界步长时间增量,但我不推荐它。
我正在使用 LevelHelper
(SpriteKit
+ Box2D
) 开发游戏,但我 运行 遇到了问题。
Box2D
取决于 FPS 的计数。那些如果是60FPS,那么body以每秒10米的速度移动,如果是30FPS,那么就是以每秒5米的速度移动。有必要不管FPS的计数是一个恒定的速度。
有什么解决方案可以解除Box2D
与FPS计数的绑定吗?
关于模拟时间,Box2D 仅取决于您将世界步骤的时间增量设置为多少。如果您将时间增量设置为 1/60 秒,那么它将与 60FPS 显示刷新相匹配,但时间增量可以是其他值。
一般来说,时间增量越小,模拟越准确。因此,如果您不使用模拟 1/60 秒的世界步长,而是使用模拟 1/120 秒的步长,您将获得更准确的模拟。使用较小的时间增量,还可以使主体的最大速度(每模拟秒行进的距离)更快。
由 Box2D 库用户决定如何协调世界步骤与显示刷新。只要知道改变世界步进时间——比如通过使用调用世界步进方法之间的实时时间间隔——可能会导致不切实际的物理效果。因此,虽然在模拟期间可以在 运行 时间改变世界步长时间增量,但我不推荐它。