1

複数の画面が必要なので、1) 複数のゲーム クラス (Microsoft.Xna.Framework.Game から継承され、異なるクラス名を持つ) を定義できますか? 2)そのような方法で作成する設計上の欠陥はありますか?

4

2 に答える 2

0

プログラムは、Game1クラスを継承するクラスを初期化することから始まりますGame。したがって、その自動コードを変更するのは良い考えではないと思います。

しかも、その名の通り。複数のGameクラスがある場合、それは複数の「ゲーム」を実行していることを意味します。しかし、そうではありません。代わりに、単一の に複数の画面がありますGame

これらの画面を分離するには、異なるDrawableGameComponent. また、実装できる独自のDrawおよびメソッドも含まれています。後で、これらすべてを のlistプロパティUpdate追加できます。DrawableGameComponentComponentsGame1

すべての複雑さはDrawableGameComponents に分散されます。それらのDrawandUpdateメソッドは、XNA によって自動的に呼び出されます。

これは役に立ちます。

これはいい方法だと思います。より良い提案は大歓迎です

于 2012-10-09T09:56:42.950 に答える
0

これは Windows Phone 7 では不可能だと思います。プラットフォームは、インスタンスから派生したクラスを見つけることによって XNA ゲームを開始Gameします (自分でインスタンスを作成する Xbox や Windows とは異なります)。複数の派生クラスがあると失敗すると思います。(あなたはそれを試すことができます。)

次に、の問題がありGraphicsDeviceます。WP7 でグラフィックス デバイスの 2 つのインスタンスをセットアップすることはできないと思われます。画面に書き込むことができるものをどのように変更しますか? これを行うための API については知りません。

また、2 つの別々のグラフィックス デバイスを持っていた場合、2 つの間でコンテンツを共有できませんでした。2 回ロードする必要があります - パフォーマンスの問題です。

Game理論的には、1 つのを使用するために の2 つのインスタンスを設定できますGraphicsDevice。ただし、それには、独自の の代替バージョンを作成する必要がありますGraphicsDeviceManager。これは簡単な作業ではありません。さまざまな画面を処理する単純なステート マシンをセットアップするよりもはるかに困難です。

おそらく、それがどのように行われることになっているかの例については、Game State Managementのサンプルを確認してください。

于 2012-10-09T09:57:06.507 に答える