【Swift/SpriteKit】SKActionを制御する【繰り返しなど】
SKActionを扱う際の基本的なことだけの簡単なメモを。
アクションを順番に実行する(シーケンス)
// 右へ50移動 let move = SKAction.moveBy(x: +50, y: 0, duration: 0.2) // 左へ50移動 let moveRev = move.reversed() // アクション配列をシーケンスにする let sequence = SKAction.sequence([move,moveRev,moveRev,move]) // 実行 sprite.run(sequence)
アクションを繰り返す
繰り返す回数を指定
// 繰り返すアクション(シーケンス含む)と回数を指定 let repeatAction = SKAction.repeat(move, count: 5) // 実行 sprite.run(repeatAction)
永遠に繰り返す
// 繰り返すアクション(シーケンス含む)を指定 let repeatForever = SKAction.repeatForever(action) // 実行 sprite.run(repeatForever)
同時に実行
// 同時に起こすアクション let move = SKAction.moveBy(x: +50, y: 0, duration: 0.2) let rotate = SKAction.rotate(byAngle: CGFloat(M_PI * 2), duration: 0.2) // グループにまとめる let group = SKAction.group([move,rotate]) // 実行 sprite.run(group)
ウェイト(間を空ける)
秒数固定
// 1秒ウェイト let wait = SKAction.wait(forDuration: 1.0)
秒数をランダムにする
//2秒を中心として4秒の開きの中でランダムする let wait = SKAction.wait(forDuration: 2, withRange: 4)
アクション実行中に変数や関数を処理する
シーケンスに組み込んだり
let numPlus1 = SKAction.run({ num += 1 })