2015-01-05 115 views
2

我試圖找出一個方法,當沿着圓弧路徑在飛行中(受重力影響)時旋轉SKSpriteNode對象。我使用SpriteKit並使用applyImpulse拋出對象。問題在於,物體儘管在空中的弧形路徑中行駛,仍處於相同的位置。使用SpriteKit沿圓弧旋轉SKSpriteNode

想象一下射手射箭。箭頭向上射擊,應該朝這個方向向上。一旦箭頭開始沿弧線下落,它應該開始向下旋轉。

有什麼方法可以使用SpriteKit物理自動化這個嗎?我應該用不同的方式拋出箭頭,而不是使用applyImpulse?我是否需要根據對象速度自行創建一些算法來進行旋轉?

回答

4

在你的didSimulatePhysics或你的update你可以旋轉你的精靈向其向量。不確定是否有辦法自動實現這一點。

let angle = atan2(mySprite.physicsBody!.velocity.dy, mySprite.physicsBody!.velocity.dx) 
mySprite.zRotation = angle 
+0

沒有自動性,只是上面和可信的「方向矢量角度」轉換 – LearnCocos2D