XNA Alpha Смешивание части текстуры в Game Studio 4.0 - PullRequest
2 голосов
/ 12 июня 2011

Привет! Я пытаюсь ответить на вопрос о том, как сделать часть текстуры прозрачной при использовании Alpha Blending из этот вопрос Единственная проблема в том, что это работает только в XNA 3.1, а я работаю в XNA4.0, поэтому такие вещи, как RenderState не существуют в том же контексте, и я понятия не имею, где найти библиотеку классов GfxComponent.

Я все еще хочу сделать то же самое, что и в примере вопроса, круговой областиизлучается из положения мыши, что делает текстуру покрытия прозрачной при наведении курсора мыши на нее.

1 Ответ

2 голосов
/ 13 июня 2011

3.5

GraphicsDevice.RenderState.AlphaBlendEnable = true;

4.0

GraphicsDevice.BlendState = BlendState.AlphaBlend;

См. Сообщение Шона Харгривза для получения дополнительной информации: http://blogs.msdn.com/b/shawnhar/archive/2010/06/18/spritebatch-and-renderstates-in-xna-game-studio-4-0.aspx

РЕДАКТИРОВАТЬ: В сообщении вы можете увидеть Шона, используя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;

Что понятнее?

...