1

我启动了一个非常基本的 XNA 4.0 程序,在其中我通过内容加载器加载了一个小点的红色图像。红点是 10x10,边缘是圆形的,使它看起来很圆。我在屏幕上绘制它并将其 X 和 Y 位置更新为鼠标的 X 和 Y 位置。所以基本上它是一个自定义的红色光标。

现在我的问题是:我将如何将此光标用作画笔?当我单击鼠标左键时,我希望它绘制到当前屏幕大小的空白 Texture2D 背景上。它的功能就像 MSPAINT 中的画笔一样。

我想我需要一个 Vector2 点数组来保存鼠标移过的点,并且对于这些点中的每一个,当更新发生时,它会在背景 Texture2D 上绘制点?

这可能不是很有效,但这是我当时能想到的。

我还阅读了 Texture2Ds 的更改颜色数据,但可惜没有运气。

4

3 回答 3

3

我从未尝试过用 XNA 绘画,但喜欢这个主意!因此,我环顾四周,发现了这个已回答的问题,谁知道这可能正是您所需要的!祝你游戏好运。 XNA 在运行时在 Texture2D 上绘制/绘制

于 2012-04-05T13:14:43.220 回答
1

对于那些对我如何在屏幕上“绘制”感兴趣的人,可以在这里找到整个代码库 https://thefoofighter@github.com/thefoofighter/paint.git

它当然是解决我的问题的最佳方法,但它完成了我需要它做的事情,而且因为我不需要担心将更大的程序导入到其中进行优化,所以我没有尝试过让它变得更好。

上面的 Git 有一个自述文件,提供了有关更改和优化的更多信息。

于 2012-04-05T21:08:36.637 回答
0

在加载内容:

var renderTarget = RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.PreserveContents);

绘制时:
- 设置此渲染目标
- 在 currentPosition 绘制画笔
- 取消设置渲染目标
- 绘制渲染目标

这样您就不需要将渲染目标中的数据设置/取消设置到纹理上或跟踪先前的位置。

于 2013-02-15T16:50:17.840 回答