我有一堆對象(SKNode
)從屏幕頂部通過SKAction.move(to:duration:)
和node.run(moveAction)
「下降」到底部。另外我在屏幕的中心有一個節點,它有自己的物理主體,可以通過觸摸輸入左右拖動。我可以很好地檢測碰撞,但是我想知道是否有一個「暫停」所有對象的範例,而中心節點與任何對象都有聯繫。此外,我希望能夠在其他對象「暫停」的時候移動中心節點,這樣我就可以將它移開,然後讓對象恢復運動。我想我可以迭代所有現有對象並設置它們的屬性,但我不確定應用程序如何知道中心節點何時不再「碰撞」,因此我可以切換回屬性。如何控制SpriteKit中節點的速度
1
A
回答
2
要暫停某些操作,您必須檢測didBegin()
中的聯繫人,向某些陣列添加應該暫停的節點並最終暫停節點。例如,實際暫停可以在didSimulatePhysics()
中完成。要暫停所有節點可以使用
self.enumerateChildNodesWithName("aName") {
node, stop in
// do something with node or stop
}
或(通過應暫停您的節點的容器,如:循環)使用節點和環children財產穿過。
您也可以暫停某些行動:
if let action = square.actionForKey("aKey") {
action.speed = 0
}
與action.speed = 1
取消暫停,或使其緩慢謨與action.speed = 0.5
放緩的物理模擬,有一個名爲physicsWorld.speed
財產(確定模擬運行的速率)。
1
哦,男孩,事情肯定會變得複雜。 Whirlwind說的每件事都是正確的,但是遍歷場景中的每個節點都會變得很麻煩。
相反,我建議爲SKNode創建一個特殊的子類。現在,這家特別的需要,由於引起蘋果框架
class UserPausableNode : SKNode
{
public var userPaused = false
{
didSet
{
super.isPaused = userPaused
}
}
override var isPaused : Bool
{
get
{
return userPaused
}
set
{
//Yes, do nothing here
}
}
}
爲什麼我們需要做的,這是因爲每當isPaused得到被調用,它遍歷所有兒童,並將兒童isPaused
屬性的原因的錯誤。
這將成爲一個問題,當場景暫停和取消暫停,因爲它會改變孩子們,這是我們不希望做的暫停狀態。
該類防止isPaused變量發生變化。
既然這個類存在,我們想要做的就是將它添加到場景中,並將所有移動節點添加到這個新節點。
由於所有節點都是這個新的節點上,我們需要做的是設置userPaused
爲真,這將停止所有節點。
現在確保要移動的節點不是該分支的一部分,它應該是外面,讓你可以移動它。
例
相關問題
- 1. 以快速spritekit爲中心將節點置於節點上
- 2. 在SpriteKit中限制另一個節點
- 3. JavaScript:如何控制進度速度?
- 4. 如何控制動畫GIF的速度?
- 5. SpriteKit:另一個節點上的節點
- 6. SpriteKit - 選擇節點
- 7. 減速控制檯速度
- 8. SpriteKit加速度計問題
- 9. 如何控制Jquery Testimonial速度
- 10. 如何控制動畫速度?
- 11. 如何控制動畫速度(requestAnimationFrame)?
- 12. 如何控制jquery動畫速度
- 13. 如何控制JCarousel Vertical Scroller速度?
- 14. 使用SpriteKit如何將精靈節點以隨機但一致的速度移動到一個點
- 15. Spritekit - 提高速度並保持精靈節點之間的距離相同?
- 16. Web瀏覽器速度過快,如何控制速度?
- 17. TextToSpeech(TTS)的控制速度
- 18. apache(localhost)的控制速度
- 19. 如何更改SWIFT中下降節點的速度
- 20. 在SpriteKit遊戲中計算速度
- 21. 從節點控制器調用節點控制器,如何發送數據?
- 22. 更改SpriteKit中的父節點
- 23. 處理SpriteKit中的每個節點Swift
- 24. Swipe旋轉SpriteKit中的Sprite節點
- 25. 如何檢測SpriteKit中碰撞中涉及的節點數量
- 26. SpriteKit physicsBody applyImpulse節點失敗
- 27. Spritekit框架長地節點
- 28. SpriteKit:在CGPoint獲取節點
- 29. Android中MediaPlayer的速度控制
- 30. 控制程序中的計算速度