XNA游戏中的进度条
本文关键字:游戏 XNA | 更新日期: 2023-09-27 18:01:21
有人知道如何添加计时器来控制进度条的速度吗?此外,我需要时间在另一个功能中使用它,它只在进度条移动时运行,并在进度条停止时停止。那么具体来说我需要的是设置一个计时器来控制进度条,如何得到它呢?
,顺便说一下……在visual studio中使用XNA进行游戏开发
认为,
在XNA中没有计时器功能,但是您可以锁定已经过去的秒数。
Game
中的Update
和Draw
方法提供了一个GameTime
对象,该对象持有TotalTimeElapsed
属性。保留一个对象的副本(只是确保它是一个副本而不是引用)作为之前的时间,并将其与"当前时间"进行比较。如果差异超过目标值,请执行您的事件。
//at top of class
private TimeSpan previousTime;
private TimeSpan targetTime = new TimeSpan(0, 0, 5); //5 seconds
private bool isFirstUpdate = true;
//later down in your update
public void Update(GameTime gameTime)
{
if(isFirstUpdate)
{
previousTime = new TimeSpan(gameTime.TotalElapsedTime.Ticks);
isFirstUpdate = false;
}
if(gameTime.TotalElapsedTime - previousTime >= targetTime)
{
//do some event, and don't forget to re-set previous time
previousTime = new TimeSpan(gameTime.TotalElapsedTime.Ticks);
}
}