のーとぶっく

学んだことをまとめておく学習帳および備忘録

【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
})