2017-09-01 90 views
1

我开发的游戏使用LevelHelperSpriteKit + Box2D),我遇到了一个问题。Box2D和Xcode

Box2D取决于FPS的数量。那些如果60FPS,那么身体以每秒10米的速度移动,如果30FPS,则以每秒5米的速度移动。不管FPS的数量是不变的,都是必要的。

有没有解决方案从FPS的计数中解开Box2D

+0

请考虑接受我的答案,如果它回答你的问题或请添加评论解释什么不是很清楚。谢谢! –

回答

2

关于模拟时间,Box2D仅取决于您设置的世界步骤的时间增量。如果您将时间增量设置为1/60秒,那么它将与60FPS显示刷新相匹配,但时间增量可以是其他值。

一般来说,随着时间增量变小,模拟变得更加准确。因此,如果不是使用模拟1/60秒的世界步骤,而是使用模拟1/120秒的步骤,则可以获得更精确的模拟。使用更小的时间增量,还可以使机体的最大速度(以每秒模拟的距离为单位)更快。

由Box2D库用户决定如何协调世界步骤与显示刷新。只要知道改变世界步骤时间 - 就像使用世界步骤方法调用之间的实时流逝一样 - 可能会导致不切实际的物理效应。因此,在仿真过程中,在运行时改变世界步时间差值时,我不会推荐它。