2012-06-08 45 views
0

我需要在xna中绘制简单的alpha地图,这取决于当前的游戏状态。我无法在资源中保存多种alpha地图,所以我想动态地绘制它们。Xna:绘制动态alpha地图

例如sprite可以部分隐藏在墙后面。

我想到使用System.Drawing,但是当我包含此dll时,与Xna命名空间存在冲突。有没有另一种方法可以在xna中绘制简单的位图?

谢谢你的时间。

+1

你能想到任何其他需要你动态生成alpha地图的情况吗?部分模糊的精灵可以像在不同层中绘制精灵一样简单(带或不带深度缓冲区)。使用图形API的许多事情都可能在开始时很直观。这可能是有一个更简单的方法来做你需要的。 – Ani

+0

@ananthonline感谢您的建议:) – Kasyx

回答

2

你不应该使用System.Drawing类。这些工作在位于系统RAM中的图像上。而是使用XNA来操纵GPU内存中的纹理。

您可以使用SetRenderTarget()将纹理设置为渲染目标。这将导致在纹理上执行进一步的绘制调用。这样,您可以在纹理上绘制所有内容。但是,您不会有绘制圆形,方形等的方法。要实现此目的,您应该使用相应的几何体创建顶点缓冲区或使用精灵模板。

+0

您已将我的注意力付诸于重要的事情:在GPU上绘制它。谢谢。 – Kasyx