1

我希望能夠通過使用SKPhysicsBody的applyImpulse方法通過自定義貝塞爾路徑跟隨節點從點A移動到點B.我想使用applyImpulse的原因是因爲它根據初始衝動來模擬一個很好的自然運動(快速開始並減速)。看起來,當一個物體通過applyImpulse施加脈衝時,它只會在與環境的摩擦導致其速度減小到零時停止。我希望它遵循我的道路,並在最後停下來。我怎麼去解決它?如何使用applyImpulse按照自定義貝塞爾路徑將節點從點A移動到點B

+0

遵循路徑和物理引擎的對象是直徑相反的排序。要模擬加速,您可以在路徑SKAction上使用簡易定時模式。 – LearnCocos2D

+0

如果你已經找到了這個問題的答案,請添加它作爲答案。 [回答你自己的問題](http://meta.stackoverflow.com/help/self-answer)受到高度鼓勵! –

回答

0

正如以下海報所示,無法讓我的物體在applyImpulse後在自定義bezier路徑上移動。我用SKAction的customActionWithDuration方法和https://github.com/warrenm/AHEasing

自定義緩動函數我想要的效果是不相同或相似applyImpulse但可以定義自己的自定義緩動函數幫了不少忙。

2

Like LearnCocos2D表示,遵循路徑的對象目前沒有與應用物理進行交互,直到完成跟蹤所述路徑爲止。

每個SKAction都有一個可以設置的屬性,稱爲timingMode。

所以如果你實例在同一行的SKAction,下一行,你可以說:

action.timingMode = SKActionTimingEaseOut; 

將開始快速在行動的過程中減緩,縮放,使得其將繼續完成在指定的時間內移動。

+0

感謝您的答案,但我知道關於timingmode屬性和緩動但它不會。我嘗試了很多緩和的路徑,感覺不太自然。無論如何修改緩和曲線? – Nihat

+0

不是一個簡單的方法,無論如何。我會嘗試多個順序路徑,可能會有所緩解嗎?這應該讓你更好地控制相對速度。 – webbcode

相關問題