XNA在运行时在纹理2D上绘制/绘制

XNA在运行时在纹理2D上绘制/绘制,xna,textures,xna-4.0,texture2d,Xna,Textures,Xna 4.0,Texture2d,早上好(如果你所在的地方是早上) 我一直在环顾四周,没有看到一个令人满意的方法来做这件事,所以我想我会问问周围 理想世界我希望能够生成一个透明的纹理2D对象。将其绘制到屏幕上,我希望能够对其进行“绘制”,即当鼠标左键按下时,光标所在的任何像素都应设置为黑色。接下来,我将需要能够使用这个纹理 使用纹理是很容易的,我们可以简单地为“绘画”对象创建一个新的Texture2D属性,并在SpriteBatch.Draw方法中使用它。这两个棘手的部分是 生成指定大小的texture2D对象,并在代码中填充透

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

我一直在环顾四周,没有看到一个令人满意的方法来做这件事,所以我想我会问问周围

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

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

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

  • 如果有人有这些方面的经验,您将不胜感激。

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


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

    太棒了,谢谢安德鲁,非常感谢你的帮助!一旦有机会,我会启动VS并做一个模型,我会尽快报告,希望能为其他人提供一些示例代码。如果你不介意的话,我碰巧非常仔细地讨论了这个问题