0
私は、columnTimeの間待ちアクションを実行してからコードブロックを実行するコードを持っています。これは私が次のことをしたいwaitアクションを無期限に実行する関数
func startSpawning(){
print(columnTime)
let wait = SKAction.waitForDuration(columnTime)
let block = SKAction.runBlock({[unowned self] in self.spawnObstacle()})
let sequence = SKAction.sequence([wait, block])
runAction(SKAction.repeatActionForever(sequence), withKey: "spawning")
} //startSpawning
ブロックを一度実行し、その後、時間を待って、その後、ブロック、その後、時間を待って、などになります。run、5秒、4.95秒に列の時間を短縮する実行ブロックコードを待ちます4.90秒待ってから4.90秒に実行時間を短縮するブロックコードを実行する、4.90秒間実行待ちなど
私は以下を試しましたが、何度も何度も何度も何度も何度も実行しています。私の出力は、待機ブロックとブロックコードブロックの両方からのprintステートメントであふれます。
func startSpawning(){
let wait = SKAction.runBlock({[unowned self] in self.waitFunc()})
let block = SKAction.runBlock({[unowned self] in self.spawnObstacle()})
let sequence = SKAction.sequence([wait, block])
runAction(SKAction.repeatActionForever(sequence), withKey: "spawning")
} //startSpawning
func waitFunc() -> SKAction{
print("running wait func")
return SKAction.waitForDuration(getColumnTime())
}
func getColumnTime() -> NSTimeInterval {
return columnTime
}
これはアクションを1回だけ実行しませんか? – lelephant
いいえあなたは新しいシーケンスを開始するためにシーケンスの最後にstartSpawning()を呼び出しています – Knight0fDragon
信じられないほどです!それは私が言わなければならないことですが、コメントの長さがありますので、この文も書きました – lelephant