有谁知道如何添加计时器来控制进度条的速度?另外,我需要那个时间在另一个功能中使用它,它仅在进度条移动时运行并在进度条停止时停止..所以具体来说,我需要设置一个计时器来控制进度条以及如何获取它?
顺便说一句..我在 Visual Studio 中使用 XNA 游戏开发的 c# 编码
问候,
XNA 中没有单独的计时器功能,但您可以锁定已经过去的秒数。
中的Update
和Draw
方法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);
}
}