動的に作成され、ループ内でオフセットされるSKActionシーケンスの不明な量(辞書の配列から)を実行する必要があります。ループの印刷出力は、シーケンスのみ予想通り、それは出力よりも一度発生する必要がある場合、私はこのコード動的に遅延されたSKActionsのシーケンスをループする方法
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
}
}
を使用するこの機能を得るために、次の順序
show line 5
hiding everything
show line 6
hiding everything
show line 2
hiding everything
に表示され、しかし、あります(ユーザーがアクションを停止するまで)繰り返し続けるだけのシーケンスが必要です。アクションを永遠に繰り返すことは、個々のシーケンスを繰り返して順序を混乱させるため、機能しません。最初のシーケンスは1秒ごとに繰り返され、2番目のシーケンスは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