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

时间:2011-07-20 07:51:48

标签: xna textures xna-4.0 texture2d

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

我一直在环顾四周,并没有看到一个令人满意的方法,所以我想问一下......

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

使用纹理是一件容易的事情,我们可以简单地为“绘画”对象创建一个新的Texture2D属性,并在SpriteBatch.Draw方法中使用它。

这两个棘手的部分
  1. 生成指定大小的texture2D对象,在代码中填充透明度。
  2. 动态编辑texture2D(即能够改变像素颜色)
  3. 如果有任何人对此有任何经验,那么您将非常感激。

1 个答案:

答案 0 :(得分:14)

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

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