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