【SpriteKit】敵キャラの動きをランダム化する方法

今日は、のっくんです。

iPhoneアプリ開発も終盤戦です。

この記事ではランダムに動くボスキャラを作っていきます。

SpritekitではSKActionと呼ばれるアニメーションを管理する機能があるので、

これを使ってアニメーションを作成していきます。

上の動画のようにボスがランダムに動くようにしてみました。

        var actions = [SKAction]()
        
        let moveRightTop = SKAction.move(to: rightTop, duration: 0.5)
        actions.append(moveRightTop)
        
        let moveRightMiddle = SKAction.move(to: rightMiddle, duration: 0.5)
        actions.append(moveRightMiddle)
        
        let moveRightGround = SKAction.move(to: rightGround, duration: 0.5)
        actions.append(moveRightGround)
        
        let randomMove = SKAction.run {
            let random:Int = Int.random(in: 0..<actions.count)
            self.run(actions[random])
        }

それぞれのアクションを配列に入れて、ランダムにその中からアクションを動かすようにします。

以下のコードで、ランダムで敵が動いて、銃を撃つ行動を繰り返します。

        movingAnimation = SKAction.repeatForever(SKAction.sequence([
            randomMove,shotFireball
        ]))

ボスキャラっぽくなりました。