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

Nic*_*ick 10 xna textures texture2d xna-4.0

早上好(如果早上你在哪里)

我一直在环顾四周,并没有看到一个令人满意的方法这样做,以为我会问周围...

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

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

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

如果有人有这些经验,你会非常感激.

And*_*ell 14

您可以使用RenderTarget2D(MSDN),它本身就是一个Texture2D(因此您可以使用它SpriteBatch.Draw).这允许您以与渲染到屏幕上相同的方式渲染到纹理上.您需要使用GraphicsDevice.SetRenderTarget(MSDN)进行设置.

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