プログラミング自体初心者です。
Macは持っていません。iPadのPlaygroundsでSwiftのプログラミングをしています。
Swift SpriteKitのSKActionでsequenceで順次処理の中にrandom要素があるのですが、呼び出しの度に違うvalueが欲しいのに、同じ値(音)しか出ません。
どうしたらいいのでしょうか
//Swift5.3, iPadOS14 let tones = ["C4", "D4", "E4", "F4", "G4", "A4", "B4", "C5"] //1~2秒程度の短いaiff形式の音です。 func indexNum()->Int { let randInt = Int.random(in: 1...7) //"C4"はわざと抜いてあります。 return randInt } let toneURL = Bundle.main.url(forResource: tones[indexNum()], withExtension: "aiff")! //変わったコードだと思うでしょうが、iPadでやっているのでこうなります。これで音は問題なく出ます。 let tone = SKAudioNode(url: toneURL) tone.autoplayLooped = false self.addChild(tone) let c4URL = Bundle.main.url(forResource: tones[0], withExtension: "aiff")! //tones[0]の代わりに"C4"でもOKです。 let c4 = SKAudioNode(url: c4URL) c4.autoplayLooped = false self.addChild(c4) let randNum = SKAction.run{ [self] in indexNum() } let tonePlay = SKAction.run { tone.run(SKAction.play()) } let c4Play = SKAction.run { c4.run(SKAction.play()) } let wait = SKAction.wait(forDuration: 1.5) let rfp = SKAction.removeFromParent() let seq = SKAction.sequence([randNum, wait, tonePlay, rfp, wait, c4Play, rfp]) let rep = SKAction.repeat(seq, count: 5) self.run(rep)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/27 16:47
2021/08/27 22:43
2021/08/28 06:04