XNA游戏中的进度条

本文关键字:游戏 XNA | 更新日期: 2023-09-27 18:01:21

有人知道如何添加计时器来控制进度条的速度吗?此外,我需要时间在另一个功能中使用它,它只在进度条移动时运行,并在进度条停止时停止。那么具体来说我需要的是设置一个计时器来控制进度条,如何得到它呢?

,顺便说一下……在visual studio中使用XNA进行游戏开发

认为,

XNA游戏中的进度条

在XNA中没有计时器功能,但是您可以锁定已经过去的秒数。

Game中的UpdateDraw方法提供了一个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);
    }
}