2012-04-11 101 views
1

我一直在关注Microsofts网站上的教程,他们使用GameTime来跟踪一些事情。但是,当我创建一个新实例时,它不会开始计数,并且没有像.start()这样的函数来启动计时器。当我运行游戏时,GameTime中创建的对象gameTime对于每个元素都保持为0。有谁知道如何使用正确GameTime因为很明显,我做错了;)XNA GameTime Windows Phone

-Thanks

+0

我个人总是使用异步/多线程绘图操作,并且从未见过需要GameTime类。 – IDWMaster 2012-04-11 01:47:06

回答

4

你不应该创建GameTime类的实例,而是使用提供给Draw()gameTime参数和Game类的Update()方法:

TimeSpan totalGameTime = gameTime.TotalGameTime; 

Windows Phone的一个很好的参考7 Programming Windows Phone 7,一个免费的电子图书由Charles Petzold的。

+0

即使我把TimeSpan totalGameTime = gameTime.TotalGameTime;在我的OnUpdate函数中,totalGameTime对于固定时间帧仍然读取00:00 – 2012-04-11 03:55:11

+1

@that_guy:第1帧应该读取0.第2帧可能读取第0帧。第3帧读取〜0.016。框架4它读取〜0.032 ...等.. – 2012-04-11 12:43:08

1

想通了,因为这是特定于Windows手机,你必须使用内置GameTimerEventArgs。谢谢你们的帮助。

+1

这不符合你原来的问题。如果您在某个特定事件中遇到问题,您应该在您的问题中提及此问题。 – Bernard 2012-04-12 00:25:34

1

我使用此代码进行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.