我一直在关注微软网站上的教程,他们使用 GameTime 来跟踪一些事情。但是,当我创建一个新实例时,它不会开始计数,也没有像 .start() 这样的函数来启动计时器。当我运行游戏时,GameTime 中创建的对象 gameTime 对于里面的每个元素都保持为 0。有谁知道如何正确使用 GameTime,因为很明显,我做错了;)
-谢谢
我一直在关注微软网站上的教程,他们使用 GameTime 来跟踪一些事情。但是,当我创建一个新实例时,它不会开始计数,也没有像 .start() 这样的函数来启动计时器。当我运行游戏时,GameTime 中创建的对象 gameTime 对于里面的每个元素都保持为 0。有谁知道如何正确使用 GameTime,因为很明显,我做错了;)
-谢谢
您不应该创建GameTime
类的实例,而是使用gameTime
提供给类的Draw()
和Update()
方法的参数Game
:
TimeSpan totalGameTime = gameTime.TotalGameTime;
Windows Phone 7 的一个很好的参考是Programming Windows Phone 7,Charles Petzold 的免费电子书。
想通了,因为这是特定于 windows phone,你必须使用内置的 GameTimerEventArgs。谢谢你们的帮助。
我将此代码用于 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.