在c#中实时绘制变量图以进行调试

本文关键字:调试 变量 实时 绘制 | 更新日期: 2023-09-27 18:07:37

我正在做一个使用XNA的c#项目。如果能够在游戏运行时实时绘制出某些变量的数值,那将是非常有用的。(只是为了调试,我不想在最终项目中使用图表。)

这似乎是以前可能做过的事情,但我找不到任何其他的:

http://devmag.org.za/2011/02/09/using-graphs-to-debug-physics-ai-and-animation-effectively/

我愿意写我自己的系统或使用别人的。如果有一个已经发布的项目,我想找到它,这样我就不用重新发明轮子了。如果不是,最好的处理方法是什么?

谢谢!

在c#中实时绘制变量图以进行调试

您可以使用XNA编写一个非常简单的系统。

你应该有一些非常基本的绘制线条的东西:

public void DrawLine(Point first, Point second);

在每一帧上运行这个系统来收集变量的值。跟踪之前的值。

在前一个值和当前值之间画一条线。

如果采样频率足够高,你可以得到这样一个相当不错的图形

您可以将要检查的值写入csv文件,然后使用excel绘制图形。这是一个关于用c#编写csv文件写入器/解析器的教程。

XNA不支持直接绘制单线/像素到屏幕(需要通过SpriteBatch)。我能想到的唯一一件事就是使用texture2D并在其上绘制图形的像素。你必须在镜头前保持纹理,使用一些奇怪的矩阵魔法,我实际上不太了解。: P

Xen图形API具有此特性。它似乎是为一些内置的变量,如FPS,但它都是开源的,所以我怀疑它会很容易添加自己的图形:http://xen.codeplex.com/

编辑

我刚刚记得,Farseer物理也有代码来做这个http://farseerphysics.codeplex.com/。它可能比Xen图形更容易删除。