如何在一段时间后增加分数? XNA

时间:2013-09-08 14:48:30

标签: c# timer xna stopwatch

5秒后,有点卡在增加玩家的分数上。最终,我希望能够使用相同的逻辑在所有不同的时间段后将分数增加'x'。目前,分数增加10但每秒增加60次(由于更新方法被称为每秒60次)。这意味着得分最终为560而不是10。

我正在考虑尝试使用isPreviousScoreChangedisCurrentScoreChanged之类的变量,就像检测按钮是否被按下和释放一样,但这也不能很好地工作。

我正在使用Stopwatch课来跟踪自游戏开始以来经过的秒数。

代码非常多:

if (Stopwatch.ElapsedTicks == 5)
{
    playerScore += 10;
}

[我知道可以在这里粘贴代码但是没有太多的粘贴,而且到目前为止我做的很简单]

非常感谢大家阅读: - )

2 个答案:

答案 0 :(得分:1)

做这样的事情:

if (timer > TimeSpan.Zero)
{
   timer -= gameTime.ElapsedGameTime;
   if (timer <= TimeSpan.Zero)
   {
       playerScore += 10;
       timer = TimeSpan.Zero;
   }
}

当然你必须设置timer = new TimeSpan(0, 0, 5);

答案 1 :(得分:0)

首先 - 我建议不要使用刻度线,因为一个刻度是非常短的时间。第二 - 如果每x秒更新一次,则使用模数运算符,如果效率更高。

if((Stopwatch.ElapsedMilliseconds%2000)==0){playerScore+=10}

在此示例中,分数应每2秒更新一次。

相关问题