1

この古いコードは XNA 4.0 では機能しません。コードが XNA 4.0 で機能するようにするには、何を変更する必要がありますか?

spriteBatch.Begin(SpriteBlendMode.AlphaBlend,SpriteSortMode.Immediate,SaveStateMode.None,Matrix.Identity);
  graphics.GraphicsDevice.SamplerStates[0].MagFilter = TextureFilter.Point;
  graphics.GraphicsDevice.SamplerStates[0].MinFilter = TextureFilter.Point;
  graphics.GraphicsDevice.SamplerStates[0].MipFilter = TextureFilter.Point;
spriteBatch.End();

次のエラー メッセージが表示されます。

「SpriteBlendMode」は現在のコンテキストに存在しません
'SaveStateMode' は現在のコンテキストに存在しません 'Microsoft.Xna.Framework.Graphics.SamplerState' には 'MagFilter' の定義が含まれておらず、タイプ 'Microsoft.Xna.Framework. Graphics.SamplerState が見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?)タイプ 'Microsoft.Xna.Framework.Graphics.SamplerState' の引数が見つかりました (using ディレクティブまたはアセンブリ参照がありませんか?) 'Microsoft.Xna.Framework.Graphics.SamplerState' には 'MipFilter' の定義が含まれていません'Microsoft.Xna.Framework.Graphics.SamplerState' 型の最初の引数を受け入れる拡張メソッド 'MipFilter' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

4

3 に答える 3

5

これらの問題を解決する方法を示すリソースを次に示します。

http://www.nelxon.com/blog/xna-3-1-to-xna-4-0-cheatsheet/

これらはすべて、古い XNA コードを 4.0 にアップグレードすることに関連する非常に一般的な問題です。

于 2012-12-28T15:34:45.393 に答える
2

XNA Framework のバージョン 4.0 でコードを最新の状態にするには、いくつかの点に注意する必要があります。

また、もう 1 つ (コードを更新していたときに気付きました)、XNA フレームワークのバージョン 3.1 と 4.0 の間で何かが変更されたようで、SamplerStates コレクションと SamplerState オブジェクトが読み取り専用になります。グラフィックス デバイスが初期化されます。独自の SamplerState オブジェクトの作成 (およびそこでのプロパティの変更) が機能することがわかりました。

SamplerState sState = new SamplerState();
sState.Filter = TextureFilter.Point;
BaseGame.Device.SamplerStates[0] = sState;
于 2013-06-23T02:37:52.260 に答える
0
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, null, Matrix);
spriteBatch.End();

XNA 4.0 では、グラフィックス デバイスを再起動せずにサンプラーの状態を変更することはできないため、ゲームで Initialize() メソッドを追加する必要があります。 graphics.GraphicsDevice.SamplerStates[0].Filter = TextureFilter.Point;

私の知る限り、それはあなたが探しているものです!

于 2012-12-28T20:33:29.410 に答える