如我們所知,默認的旋轉動作圍繞節點的中心點旋轉,但是如何使其圍繞指定的或特定的點?如何在spritekit遊戲項目中圍繞點(CGPoint)旋轉節點
回答
我不喜歡使用動作,我將所有事情都作爲遊戲內部時間的一個功能,它使所有內容保持一致,對於更復雜的遊戲來說,它至關重要。
這是從一個基於空間的遊戲中我做的,行星會圍繞一個點旋轉。
說明:
- 方向:1或-1(順時針或逆時針)
- _model.orbitSpeed:圍繞中心點
- _model.initialAngleInRadians的移動速度:起始點的軌道(因爲它是時間的函數)
- _model.orbitDistance:物體移動距離中心有多遠
time:一個表示時間的整數(在我的大部分遊戲中這相當於幀,因爲我總是使用固定的時間步長模型)
self.position = CGPointMake(cos(direction *(((float)time * _model.orbitSpeed)+ _ model.initialAngleRadians))* _ model.orbitDistance,sin(direction *(((float)time * _model.orbitSpeed)+ _ model.initialAngleRadians))* _ model.orbitDistance);
很明顯,您將需要更新所有移動的對象與當前時間爲有史以來的幀,我這樣做的更新方法。這非常簡單。你可以將它歸結爲:self.position = CGPointMake(cos((float)time)* distanceFromCenter,sin((float)time)* distanceFromCenter);
通過將旋轉的節點添加到另一個節點並更改父節點的zRotation,可以輕鬆完成此操作。 – LearnCocos2D
是的,但是你鬆散地控制了孩子本身的zRotation,然後繼續旋轉。或者你需要把它作爲反轉來破解。 我更喜歡通過純數學來代替使用兒童輪換的代碼。在大型項目中,我個人喜歡簡單的代碼。但這是一個品味問題。 –
- 1. 圍繞一箇中心點旋轉CGPoint
- 2. 如何使一個節點在spritekit遊戲項目中的節點外部旋轉
- 3. SpriteKit:在CGPoint獲取節點
- 4. 圍繞點旋轉
- 5. 圍繞另一個CGPoint旋轉CGPoint
- 6. 圍繞原點旋轉點
- 7. 僅圍繞一個軸旋轉節點
- 8. 使用swift和spriteKit我怎樣才能圍繞節點外的點旋轉SKSpriteNode?
- 9. 圍繞特定點旋轉(例如,圍繞0,0,0旋轉)
- 10. 圍繞點xna旋轉2D
- 11. 圍繞一個點旋轉
- 12. 自旋文本圍繞點的項目不帶旋轉
- 13. 如何在Java中圍繞一個點旋轉多邊形/點
- 14. 圍繞另一點旋轉一個點
- 15. 圍繞另一點旋轉一個點
- 16. Swipe旋轉SpriteKit中的Sprite節點
- 17. Swift SpriteKit靜態節點在旋轉嗎?
- 18. 圍繞點旋轉變成螺旋
- 19. 如何圍繞節點的Y軸旋轉SKSpriteNode?
- 20. Android - 圍繞中心點旋轉圖像?
- 21. Java圍繞中心點旋轉物體?
- 22. 圍繞中心點旋轉身體
- 23. Swift:圍繞中心點旋轉圖層
- 24. Unity3d圍繞任意線(不通過原點)旋轉游戲對象
- 25. Spritekit旋轉節點,同時觸摸
- 26. 如何在CSS3中圍繞原點進行旋轉?
- 27. 在畫布中圍繞原點旋轉一個點
- 28. 圍繞一個點旋轉div
- 29. 圍繞原點旋轉整個SKView
- 30. 圍繞某個點旋轉html元素
將您的節點添加到另一個偏移量的SKNode。更改父級的zRotation。會發生什麼是你的節點在給定的偏移量(它定義了旋轉的半徑)處圍繞其父節點旋轉。 – LearnCocos2D
非常感謝!我會試試看。 – luckyee