私はPhaserを初めて使い、多レベルのパズルゲームを作成しています。メニュー - -Phaserの状態を終了し、以前の状態に戻す方法
は、階層的状態は、このような何かを行く>レベル1 - >レベル2 - >など
私はキーをバック押すと、今私は、レベル1のいずれかのレベルの完了後または途中で遊んでいたとし私はメニューの状態に戻ることができるようにしたいと思っています。私はプレーし続けるために前方のレベルに戻ることができるようにしたいと思います。
当初、私はthis.state.start('anyLevel')
が私を任意の状態にすることができ、状態はブート時から初めて実行されるときのように正常に実行されると仮定しました。しかし、既に1度解雇された州に戻るのは難しいことが分かります。私が必要とするのは、以前の状態に戻ることができるようにすることであり、状態は起動後に初めて実行されるときと同じように動作するはずです。 私は新しい状態を開始する前shutDown()
を経由して状態をクリーンアップする必要があることをどこかで読んで、私がやった:
shutdown: function() {
this.game.world.removeAll();
}
すべての新しいレベルを開始する前に、それはまだ助けにはなりませんでした。私もまた試してみました:
this.state.start('anyLevel', true, false);
しかし、役に立たなかったと証明されました。デバッガは構文的にプログラムが正しいことを意味するエラーを表示しませんが、私はメカニズムを適切に把握していません。
ありがとうございます。
マルチレベルゲームに関するアドバイスをいただきありがとうございます。しかし、新しい州に入っている間、古い状態を終了する正しい方法は何ですか? shutDown()の中のすべてを手動で破棄する必要がありますか? – RDN
Interphase 1には、「シャットダウン」状態をカバーするState Manager Guideがあります。フェーザーは、独自のクリーンアップの大部分を担当すると述べています。さらに、「あなたのゲームが外部のAPIに依存している場合は、開いている接続を閉じることもできます。作成したカスタムゲームオブジェクトがより複雑な場合は、ここでそれらを破壊して停止する必要があります彼らは次の州への出血を避けている」 (64ページ)ほとんどの場合、あなたはそれをただのものにするだけでいいはずです。 –