2

こんにちは私はこの質問からアルファブレンディングを使用するときにテクスチャの一部を透明にすることについての答えに従おうとしています 唯一の問題はこれがXNA3.1でのみ機能し、XNA4.0で作業しているためRenderStateのようなものが存在しないことです同じコンテキストで、GfxComponentクラスライブラリがどこにあるかわかりません。

質問の例と同じことを実行したいと思います。マウスの位置から放射状に広がる円形の領域で、マウスをその上に置いたときにカバーテクスチャが透明になります。

4

1 に答える 1

2

3.5

GraphicsDevice.RenderState.AlphaBlendEnable = true;

4.0

GraphicsDevice.BlendState = BlendState.AlphaBlend;

詳細については、Shawn Hargreaves の投稿を参照してください: http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

編集: 投稿では、Shawn が BlendState を使用しているのを見ることができます。これの新しいインスタンスを作成し、好きなように設定して、これをグラフィック デバイスに渡します。そのようです:

BlendState bs = new BlendState();
bs.AlphaSourceBlend = Blend.One;
bs.AlphaDestinationBlend = Blend.Zero;
bs.ColorSourceBlend = Blend.Zero;
bs.ColorDestinationBlend = Blend.One;
bs.AlphaBlendFunction = BlendFunction.Add;
graphicsDevice.BlendState = bs;

それはより明確ですか?

于 2011-06-13T18:15:05.830 に答える