2017-09-01 91 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庫用戶決定如何協調世界步驟與顯示刷新。只要知道改變世界步驟時間 - 就像使用世界步驟方法調用之間的實時流逝一樣 - 可能會導致不切實際的物理效應。因此,在仿真過程中,在運行時改變世界步時間差值時,我不會推薦它。