1

Windows Phone 7 XNA ゲームをエミュレーターで実行しようとしていますが、Game.Initialize 関数を呼び出した後、単に終了します。それが与える唯一の出力は次のとおりです。

タイプ 'System.NotSupportedException' の最初の例外が Microsoft.Xna.Framework.Graphics.dll 'taskhost.exe' (Managed) で発生しました: ロードされた 'Microsoft.Xna.Framework.GamerServices.dll' タイプ ' の最初のチャンス例外System.Threading.ThreadAbortException' が Microsoft.Xna.Framework.dll で発生しました

Windowsデスクトップで実行すると、同じプログラムが正常に実行されます。

さらに調査すると、Game.Initialize で spritebatch を初期化しているためにエラーが発生することがわかりました。

        base.Initialize();
        if (spriteBatch == null)
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);
        }

spriteBach = new を削除すると...正常に動作しますが、更新/描画関数を初期化すると、ゲームは終了します...

4

2 に答える 2

2

GraphicsDeviceが呼び出されるまでは(たとえば、SpriteBatch必要なさまざまなグラフィック デバイス リソースを作成するなどして) を使用することはできません。これは、それまでLoadContentグラフィック デバイスの準備ができていないためです。

Game.GraphicsDeviceMSDNを参照してください:

LoadContent が呼び出されるまで、このプロパティにアクセスしないでください。

于 2011-06-22T11:10:39.613 に答える
0

OK問題が何であるかがわかりました。Windows Phone 7 のリーチ API が好まないテクスチャ ラッピングを使用しながら、基本的に 2 のべき乗でないテクスチャを描画しようとしていました。これで例外がスローされなかった理由がわかりません(前回このようなことをしたとき、実際に例外がスローされました)。

私は自分の質問でもっと明確にするべきでした.spritebatchを初期化しなかったとき、ドローコールもスキーピングしていました.

とにかくそれが問題でした。

于 2011-06-22T11:38:04.803 に答える