我正在使用SpriteKit物理引擎進行小型彈跳球遊戲。我的問題是:SpriteKit - 爲什麼我的彈跳球穿過地面?
當我在彈跳球上施加一個巨大的衝動使它快速落地,有時它可能穿過地面(非常薄,高度= 2)。
我在Apple文檔中找到了這個,但它不起作用。
指定高精度碰撞小或快速移動的物體 當雪碧套件進行碰撞檢測,它首先確定所有場景中的物理機構的位置。然後確定是否發生衝突或聯繫。這種計算方法很快,但有時會導致錯過碰撞。一個小身體可能會移動得太快,以至於它完全穿過另一個物理體,而沒有一個動畫幀,兩個幀之間相互接觸。
如果您有碰撞的物理實體,您可以提示Sprite Kit使用更精確的碰撞模型來檢查交互。這個模型比較昂貴,所以應該謹慎使用它。當任何一個身體使用精確的碰撞時,多個移動位置被接觸並測試以確保所有接觸被檢測到。
ship.physicsBody.usesPreciseCollisionDetection = YES;
我發現了同樣的問題:http://stackoverflow.com/questions/24838465/why-my-physics-bodies-pass-through-each-other-after-a-few-collisions-in-spriteki – noodles