XNA在运行时绘制/绘制到Texture2D上



早上好(如果你所在的地方是早晨)

我一直在寻找,没有找到一个令人满意的方法来做到这一点,所以我想我应该问问周围…

理想的世界,我希望能够生成一个透明的Texture2D对象。将其绘制到屏幕上,我希望能够"绘制"它,即当鼠标左键向下时,光标所在的任何像素都应设置为黑色。接下来,我需要能够使用这个纹理。

使用纹理是简单的部分,我们可以简单地为"绘画"对象创建一个新的Texture2D属性,并在SpriteBatch中使用它。绘制方法。两个棘手的部分是

  1. 生成指定大小的texture2D对象,在代码中填充透明。
  2. 编辑texture2D在飞行(即能够改变像素的颜色)

如果有人有这方面的经验,我将非常感谢。

您可以使用RenderTarget2D (MSDN),它本身就是Texture2D(因此您可以在SpriteBatch.Draw中使用它)。这允许你以与渲染屏幕相同的方式渲染纹理。您需要使用GraphicsDevice.SetRenderTarget (MSDN)来设置它。

或者您可以使用Texture2D.SetData (MSDN)直接操作像素。你可以直接构造一个透明的Texture2D (MSDN)。不要忘记Dispose你自己创建的任何纹理或其他资源!

最新更新