Swiftプログラミング SKSceneによる画面遷移

今回はSKSceneを使った画面遷移について解説をしていきます。本記事をマスターすると↓のように、SKLabelNodeをクリックすると別のSKSceneを表示できるSwiftプログラムが作れます。✌️

SKSceneの準備

今回は画面遷移を実装するため、TitleScene.swiftとGameScene.swiftを作成します。またSKScene上に部品の追加を行う際に便利.sksファイルもそれぞれ作成しましょう。ちなみに、TitleScene.swiftとGameScene.swiftは事前に作成してあります。もし、SKSceneファイルの作成がわからなければ、SpriteKitを使ってみようの記事を参考にしてください。

.sksファイルの作成

新規ファイルとして”SpriteKit Scene”を選択してTitleScene.sksとGameScene.sksを作成しましょう。

GameScene.sksも上記画像手順と同様に作成しワークスペース上に、TitleScene.sksとGameScene.sksが作成されていることを確認しましょう。

TitleScene.sksの設定

.sksファイルが作れたら、各シーンにラベルやら背景を設定していきます。.sksファイルでは背景色を”Color Sprite”を用いて、ラベルには”Label”を用いて設定しましょう。今回は以下のように、TitleSceneの背景とラベルを設定しました。

GameScene.sksの設定

TitleScene同様に背景色とラベルを任意で追加しましょう。今回は以下のように緑色の背景と、PlayModeと表示するラベルを追加しました。

.sksファイルを用いたSKSceneの呼び出し

ViewController.swiftで表示するSKSceneを指定する際にシーン上に適用する.sksファイルを”filenamed”を用いて指定することができます。最初に表示したいい”TitleScene.sks”を今回は設定してあります。

一旦、ここでシミュレータを起動するとTitleScene.sksで設定した画面が表示されます。しかし、まだ”START”ラベルを押しても画面遷移はできません。

touchesBeganメソッドの追加

次にTitleScene.swift上で”START”ラベルが押された際にGameSceneに遷移する処理をtouchesBeganメソッドに記述していきます。

今回touchesBeganメソッドでは、タッチされた場所にnameプロパティが”start”と指定されているかの判定を最初に行なっています。判定後に真であればGameSceneに遷移します。

nameプロパティの設定

.sksファイルからnameプロパティの対象となるSKNodeを選択して右側のウィンドウにでてくるnameを変更することによって指定できます。

以上で、SKSceneによる画面遷移が可能となります。簡単なゲーム作りであれば、タイトルシーン→ゲームプレイシーン→ゲームオーバシーンがあれば可能です。ぜひみなさんも作ってみましょう。

 

付録:ソースコード


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です