我需要運行SKAction序列的一個未知量(來自一個字典數組),這些SKAction序列是動態創建的,並且在循環中使用延遲增加,並隨着循環的進行而增加。循環的打印輸出應該出現在以下順序如何循環一個動態延遲的SKActions序列
show line 5
hiding everything
show line 6
hiding everything
show line 2
hiding everything
以獲得此功能我使用此代碼
func display(winningLines: [Int : AnyObject]) {
var delay = 0.0
var actions = [SKAction]()
let hideAction = SKAction.run {
print("hiding everything")
}
for winningLine in winningLines {
let displayAction = SKAction.run {
print("line \(winningLine.key)")
}
let wait = SKAction.wait(forDuration: delay)
var action: SKAction!
//repeatForever = true
if !repeatForever {
action = SKAction.sequence([wait, displayAction, SKAction.wait(forDuration: 1.0), hideAction])
}
else {
let seq = SKAction.sequence([wait, displayAction, SKAction.wait(forDuration: 1.0), hideAction])
action = SKAction.repeatForever(seq)
}
self.run(action)
delay += 1.0
}
}
如果序列只需要比它輸出作爲預期發生一次,但有次,我需要序列永遠不斷重複(直到用戶停止行動)。因爲它會重複每個單獨的序列並混淆順序,因此在該操作周圍重複進行重複操作無效。第一個序列每1秒重複一次,第二個序列每2秒重複一次...等等。
任何關於如何讓它永久循環的建議?
line 5
hiding everything
line 5
line 6
hiding everything
line 5
hiding everything
line 2
hiding everything
line 5
line 6
hiding everything
hiding everything
line 5
hiding everything
hiding everything
line 5
line 6
line 2
hiding everything
line 5
hiding everything
hiding everything
我也試着追加行動SKActions的數組,並通過他們在最後的循環,但它沒有工作
var actions = [SKAction]()
...
actions.append(action)
for action in actions {
self.run(action)
}
你想要它永遠增加?這需要'customAction' – Knight0fDragon