【SpriteKit】SpriteKit Sceneを使って敵キャラを配置してみた

こんにちは、のっくんです。

SpriteKitには「SpriteKit Scene」というキャラクターを配置するためのファイルが用意されています。

これを使ってキャラクターをセットしてみました。

ハエとカエルがいます。

コードで追加することもできますが、SpriteKit Sceneだとより簡単にキャラをセットできます。

プレイヤーが進むごとに現れるステージ画面をエンカウンターと呼びます。

エンカウンターには多くの敵やアイテムをセットする必要があるため、SpriteKit Scene(.sks)を使うのが良いでしょう。

作成したエンカウンターにいるキャラの位置情報は以下のコードで、SKNodeとして保存しておきます。

import SpriteKit

class EncounterManager {
    
    var encounters:[SKNode] = []
    
    init(){
        
        let fileNames = ["EncounterA","EncounterB"]
        
        for f in fileNames{
            let scene = SKScene(fileNamed: f)
            let encounterNode = SKNode()
            for child in scene!.children{
                let node = type(of: child).init()
                node.position = child.position
                node.name = child.name
                encounterNode.addChild(node)
            }
            encounters.append(encounterNode)
        }
    }    
    
}

続いて保存したSKNodeをGameScene.swiftに加える処理を書きます。

1つのエンカウンターの横幅を900としているので「900*エンカウンター数」として、x軸のポジションをセットしています。

   let EM = EncounterManager() 
  func addEncounter(){
        for i in 0..<EM.encounters.count{
            let node = EM.encounters[i]
            node.position = CGPoint(x: 900*i,y: 0)
            self.addChild(node)
        }
    }

こんな感じです。

敵キャラが登場してきて少しずつゲームらしくなってきました。

今後はCollisionイベントを設定して敵キャラとぶつかった時の処理を追加していきたいです。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog