使用另一个GameComponent来测量经过的时间

时间:2013-08-17 22:59:41

标签: c# xna xna-4.0

好的,所以我开始开发一款游戏。我想要设置的第一件事是一个广泛的Debug查看器,它最终可以显示像按下的按钮(当然只有我想听的那些)和包含有关帧时间信息的图表,这是一种各种直方图。但是,我想以正确的方式执行此操作。在我看来,我想将DrawableGameComponent类用于debugviewer,并在那里绘制调试信息。但是,它似乎无法正确测量更新和绘制时间,因为我在更新开始时启动更新计时器并在绘制开始时结束更新。然而,我很快意识到首先执行主游戏(更新 - 绘制 - 等待),然后执行所有其他组件(更新组件1,绘制组件1),因此它们不会交织在一起。这意味着我无法计算经过的时间(对于Update,Draw和开销)。正如我们可以在this blog中读到的那样,测量帧时间与每秒帧数相比更好。

对于背景故事和我的主要问题已经足够了:如何在另一个DrawableGameComponent中测量Update,Draw和主游戏开销所需的帧时间,或者我应该只使用一个类并更新在游戏中?

我希望一切都清楚,过得愉快。

2 个答案:

答案 0 :(得分:0)

我发现这个http://gamedevwithoutacause.com/?p=876可以准确地解释你的需求。

答案 1 :(得分:0)

如果无法正确衡量UpdateDraw次,使用更新计时器,您是否只能使用DateTime.Now?您可以在Update的开头,然后每个下一个周期(UpdateDraw和开销之后)得到它,您只需减去之前测量的DateTime.Now