シーンの切り替えについて

ゲームではメインのゲームを遊ぶ部分以外にもタイトル画面やポーズ画面など、いくつかの違う画面を表示する必要があります。

enchant.jsではそれらの画面のことをシーンといい、それぞれのシーンを必要に応じて切り替えて表示することができます。

シーンの切り替えには2種類あってreplaceSceneとpushScene &  popSceneがあります。それぞれ役割が違うので今回はそれについて説明します。

replaceSceneについて

replaceSceneはrootSceneの内容を指定されたシーンに書き換えます。なのでタイトル画面→メインゲーム→エンディングなど完全に違うシーンに移るときなどに使用します。

シーンは独立したクラスとして作成できます。Sceneクラスを継承して各シーンのクラスを作成します。

上記のような感じにクラスを作るとクラスが生成された時点でroorSceneがこのシーンの内容に切り替わり表示されるようになります。

※便宜上rootSceneと書いてますが実際にはGameオブジェクトのrootSceneとは別になっているようです。

pushScene & popSceneについて

pushSceneとpopSceneは画面を一時的に切り替えたいときに使えます。

pushSceneはrootSceneの上に新しいシーンをのせるような感じになります。背景を指定しなければ下にrootSceneの内容がそのまま表示されます。ただし、rootSceneから切り替わっているのでrootSceneの動きは止まっています。

popSceneをするとrootSceneの上にあったシーンが消えてrootSceneに戻ります。

つまり一時的にしか画面の切り替えが必要のない、もしくはrootSceneの上に出したいシーン(ポーズ画面、会話イベントシーン)などに使うのに向いています。

実際の切り替えの仕方

で、実際にどう切り替えるかというと、私はこんな感じでSystemというゲーム管理用のクラスを作成し、そのクラスのメソッドにクラス切替の処理をさせてます。こんな感じで(‘ω’)ノ

各シーンから切り替わるときにこのメソッドを使って切り替えています。

シーンの切り替え時には要素の削除を忘れずに

画面の切り替えをして前のシーンが画面上消えてもシーンで使った要素が残っています。これはたぶんHTML5ゲームの特徴で、プログラムの変数とは関係なくHTMLの要素として記録されているので、別にHTMLの要素を消す必要があるようです。

この関数を使って忘れずに削除しておきましょう。

 

ちょっと説明が分かりづらい方は私のテンプレートを読んでみてくださいな(‘ω’)ノ

▷▷▷ 簡単にゲームが作れるテンプレート


コメントを残す

メールアドレスが公開されることはありません。