【发布时间】:2013-10-28 22:10:08
【问题描述】:
我正在我的 XNA 游戏中编写一个调试窗口。这只是一个打印出东西的StringBuilder。但是我想让它更具交互性。例如Player 类:
public class Player
{
public Vector2 Position { get; set; }
public int Health { get; set; }
}
我想要一个要调用的属性(或方法)列表。所以像:
list.Add(player1.Position);
list.Add(player1.Health);
list.Add(enemy2.Position);
因此,每次更新时,列表都会调用这些属性并打印它们的值。有没有办法做到这一点?我需要使用反射吗?使用方法而不是属性会有很大不同吗?
编辑:这是我目前拥有的 https://github.com/nanexcool/xna-debug-window/blob/master/DebugWindow.cs
它通过将对象和属性名称指定为字符串来工作,但可能有更好的方法。
【问题讨论】:
-
您能否准确地提供您希望调试窗口的工作方式?可能类似于 Visual Studio 中的 Watch 窗口?
-
是的,您可以使用反射来获取当前项目的所有属性名称及其值。只是做一些阅读。
-
这是我在屏幕上绘制的窗口。基本上只是遍历对象,调用某些属性,并显示它们的 .ToString()
-
这是我目前所拥有的,一个 Dictionary