私はFlashで格闘ゲームを作っていますが、すべてを実行しているのに、何かが足りません。勝利/敗北の画面です。論理的に、私はそれを行う方法を知っています:
if character.hp < 0
{
character.dead = true;
dispatchevent("death", event)
}
私の問題は、それをどのようにコーディングするかがわからないことです。2つのクラスと2つの.flaファイルを使用することはわかっています(間違っていない限り)。
ここで使用されている2つの.flaファイルがあります。Menu.fla
ファイルとArena.fla
ファイルです。Menu.fla
ゲームのナビゲーション全体、オプション、キャラクター選択画面などが含まれ、プレイヤーが戦闘に参加する時間になるとArena.fla
、背景(選択したステージに応じて)のみを含むファイルが読み込まれ、現在は1フレームのみの長さに設定します。の場合Arena.fla
、実際のアクションはクラスで発生しますが、論理的には、とだけが必要HP.as
になりCharacter.as
ます。
でCharacter.as
、次の変数を宣言しました。
var isDead:Boolean = false; //is character dead?
でHP.as
、私は次のものを持っているべきだと信じています:
if(currentHp<0)
{
currentHp = 0;
character.isDead = true; //declared as var `character:Object;`
EventDispatcher.dispatchEventListener("playerDead", playerDead);
}
そして最後に、ではArena.fla
、上記のイベントリスナーを検出して、ボタンで「PLAYERONEHASWON」または「PLAYERONEHASLOST」のスタイルでメッセージを表示する2番目のフレームに移動できるようにしたいと思います。文字選択画面に戻ることができます。これは私が立ち往生している最初の部分です:メインの.flaファイルでディスパッチされたイベントリスナーを検出するにはどうすればよいですか?
次に、プレーヤーが勝ったか負けたかに関係なく表示される[続行]ボタンをクリックした場合、このクリックイベントを検出し、ゲームをアンMenu.fla
ロードArena.swf
して、キャラクター選択画面に戻るにはどうすればよいですか?
よろしくお願いします。これはたくさんのテキストだと思いますが、私ができる最も説明的なものです。ご不明な点がある場合や、私の質問について説明が必要な場合は、お気軽にご連絡ください。
-クリストファー