0

我画了两个相交的半透明圆圈。我发现交叉区域的颜色比其他区域更深。有没有办法让整个形状成为一种半透明的颜色(一个区域的颜色不应该比其他区域更深)?

是否可以向我发送任何示例代码来解决问题?

现在在draw方法中,我正在使用以下代码:

spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(textureCircle1, spritePositionCircle1, new Color(255, 255, 255, (int)(150)));
spriteBatch.Draw(textureCircle2, spritePositionCircle2, new Color(255, 255, 255, (int)(150)));
spriteBatch.End();

base.Draw(gameTime);
4

2 回答 2

0

我不是 XNA 的人,所以你可能需要做一些翻译。

您能否将它们从屏幕上渲染为黑色单色上的白色,并拍摄生成的图像,使白色成为您想要的透明颜色而黑色完全透明?

我不确定你会如何编写代码,但这是我研究的方法。

于 2010-07-16T19:00:56.413 回答
0

检查您认为不太透明的像素的 alpha 值(您正在将它们绘制到它们自己的表面上,而不是直接绘制到后缓冲区,对吗?)。它们可能看起来不那么透明,因为它们的组合颜色更深。

如果它们确实不那么透明,请将表面上每个像素的透明度更改为相同的值(恐怕我不知道如何在 XNA 中执行此操作)。

如果它们看起来不那么透明,请尝试将您的精灵完全不透明地绘制到表面上(这样一个会完全覆盖另一个),然后再次更改整个表面的透明度。

于 2010-07-16T21:56:49.053 回答