1

有谁知道如何添加计时器来控制进度条的速度?另外,我需要那个时间在另一个功能中使用它,它仅在进度条移动时运行并在进度条停止时停止..所以具体来说,我需要设置一个计时器来控制进度条以及如何获取它?

顺便说一句..我在 Visual Studio 中使用 XNA 游戏开发的 c# 编码

问候,

4

1 回答 1

1

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

中的UpdateDraw方法Game提供了一个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);
    }
}
于 2013-02-26T21:14:00.743 回答