私は障害が発生した後、ランダムな時間を待っているシーケンスを持っていますが、ゲームを実行すると、例えば最初のランダム遅延は1.4秒ですが、最初の遅延だけではなく、まったく時間です1.4であり、変化しません(1.4でなくてもかまいません)。私はランダムな戻り値を持つ関数を作成しようとしましたが、関数は動作しません。私はこれをどのように解決できるか考えていません。ここでは、ランダム戻り値を持つ関数のコードです。それが助け場合obstSwitch()は障害物を作成する関数です:SpriteKitシーケンスで異なるランダム遅延を取得する方法は?
func getRandomDelay() ->Double {
let randomNumber = arc4random_uniform(20) + 5
let randomDelay: Double = Double(randomNumber)/10
print(randomDelay)
return randomDelay
}
とHERESにゲーム開始時に呼び出されるの取得機能:
func gameStarted() {
gameAbleToStart = false
moveLine()
scoreTimer()
let runObstSwitch = SKAction.run {
self.obstSwitch()
}
let wait = SKAction.wait(forDuration: getRandomDelay())
let sequence = SKAction.sequence([runObstSwitch, wait])
self.run(SKAction.repeatForever(sequence))
}
'letRandomNumber = arc4random_uniform(20)+ 5'は' getRandomDelay() '関数の中に*置かなければなりません。そうでなければ、それは一度だけ初期化されます。 –
ああ、そうですが、それでも動作しません:/ –
問題点は何ですか?私は今プレイグラウンドであなたの機能を実行していて、毎回ユニークな値を表示するようです。この機能が動作しないと言っていますか? –