我一直在关注Microsofts网站上的教程,他们使用GameTime来跟踪一些事情。但是,当我创建一个新实例时,它不会开始计数,并且没有像.start()这样的函数来启动计时器。当我运行游戏时,GameTime中创建的对象gameTime对于每个元素都保持为0。有谁知道如何使用正确GameTime因为很明显,我做错了;)XNA GameTime Windows Phone
-Thanks
我一直在关注Microsofts网站上的教程,他们使用GameTime来跟踪一些事情。但是,当我创建一个新实例时,它不会开始计数,并且没有像.start()这样的函数来启动计时器。当我运行游戏时,GameTime中创建的对象gameTime对于每个元素都保持为0。有谁知道如何使用正确GameTime因为很明显,我做错了;)XNA GameTime Windows Phone
-Thanks
你不应该创建GameTime
类的实例,而是使用提供给Draw()
的gameTime
参数和Game
类的Update()
方法:
TimeSpan totalGameTime = gameTime.TotalGameTime;
Windows Phone的一个很好的参考7 Programming Windows Phone 7,一个免费的电子图书由Charles Petzold的。
即使我把TimeSpan totalGameTime = gameTime.TotalGameTime;在我的OnUpdate函数中,totalGameTime对于固定时间帧仍然读取00:00 – 2012-04-11 03:55:11
@that_guy:第1帧应该读取0.第2帧可能读取第0帧。第3帧读取〜0.016。框架4它读取〜0.032 ...等.. – 2012-04-11 12:43:08
想通了,因为这是特定于Windows手机,你必须使用内置GameTimerEventArgs。谢谢你们的帮助。
这不符合你原来的问题。如果您在某个特定事件中遇到问题,您应该在您的问题中提及此问题。 – Bernard 2012-04-12 00:25:34
我使用此代码进行XNA wp游戏倒计时。我认为这也可以在正常的XNA GameTimer中用于倒计时和计时。
GameTimer gameTime = new GameTimer();
int _timer = 5;
// initiate
gameTime.UpdateInterval = TimeSpan.FromSeconds(1); // game time count every second
gameTime.Update +=new EventHandler<GameTimerEventArgs>(gameTime_Update); // each time count, will exeute gameTime_Update method.
// each time execute, will decrease _timer by 1
void gameTime_Update(object sender, GameTimerEventArgs e)
{
_timer-= 1;
}
// on function OnNavigatedTo, after
timer.Start(); // this is default
gameTime.Start(); // this what I add.
我个人总是使用异步/多线程绘图操作,并且从未见过需要GameTime类。 – IDWMaster 2012-04-11 01:47:06