我有點卡在如何處理以下問題:SpriteKit:我需要類似.pauseActionForKey()的東西?
我的滾動遊戲產生從plist加載的不同類型的障礙。產卵由SKAction延遲,每個障礙的持續時間由y位置計算。
更新反映Wraithseeker的答案。
這是所有的計時器在開始設置代碼中的 didMoveToView()
:
for obstacleTuple in level.obstacleTuples {
let positionY = obstacleTuple.positionY
let obstacle = obstacleTuple.obstacle as! SKNode
let duration = NSTimeInterval(positionY/kObstacleDistancePerSec)
// **Update**: Instead of running the wait action on the scene...
//runAction(SKAction.waitForDuration(duration), completion: {
// I should run it on the foregroundNode...
foregroundNode.runAction(SKAction.waitForDuration(duration), completion: {
self.foregroundNode.addChild(obstacle)
})
}
// And then toggle the pause property on that node to stop and resume.
let foregroundNode.paused = foregroundNode.paused == true ? false : true
我想有特殊事件(取決於用戶行爲發生),在此期間,上述障礙的產卵進一步延遲,玩家可以收集獎勵物品。 所以基本上,我需要爲等待SKAction分配一個鍵,然後有一個.pauseActionForKey()
方法(而不是.removeActionForKey()
)。
是否可以用SKAction
來延長? 有沒有更好的方法來實現我想要做的事情?
你問如何暫停一個節點,它是當前的行動? – sangony
不,使用暫停屬性在這裏沒有幫助,因爲等待操作繼續運行。考慮一下,也許我應該在障礙物上運行等待SKAction而不是場景。但即使如此,我還可以在尚未添加的節點上使用暫停屬性嗎?我會盡快嘗試。 – nontomatic