11

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

我一直在环顾四周,并没有看到令人满意的方法来做到这一点,所以我想我会四处询问......

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

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

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

如果有人对这些有任何经验,您将不胜感激。

4

1 回答 1

14

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

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

于 2011-07-20T08:06:09.460 回答