ゲームを作る上でカメラの実装は必須になる。
プレイヤーの位置に合わせてカメラを移動させる方法をご紹介する。
カメラは`SKCameraNode`を使ってインスタンスを作る。
let cam = SKCameraNode()
GameSceneクラスのメンバとして追加するのが良い。
次にdidMoveの中でカメラをセットする。
//カメラをセット self.camera = cam self.addChild(cam)
これでカメラの設定は完了。
次にカメラの座標をプレイヤーの位置に合わせて変更するコードを`didSimulatePhysics`追加する。
`didSimulatePhysics`はフレームが更新される度に呼び出される関数なので、この中に更新処理を書くのが良さげ。
override func didSimulatePhysics() { //横スクロールゲームのため、高さは固定でx座標だけ動けば良い。 self.camera?.position = CGPoint(x: self.nokman.position.x, y:0) }
プレイヤーのxポジションをカメラにセットすることで、キャラクターの移動に合わせてカメラも動く。
横スクロールゲームの場合、y座標は動かなくても良いので常に0にしておく。
これでカメラの設定は完了だ。
これはオプション的な内容だが、カメラの移動に合わせてボタンなどを動かしたい場合は、以下のコードのようにカメラの子としてノードをセットする必要がある。
cam.addChild(leftMove)
SKSceneの子に設定している場合には注意しよう。