关于c#:如何在一段时间后增加分数?

How to increment score after certain time period? XNA

在5秒后增加玩家的分数有点困难。最后,我希望能够使用相同的逻辑,在所有不同的时间段后,将分数增加"x"个数。目前,分数正以每秒10到60次的速度递增(由于更新方法每秒被调用60次)。这意味着分数最终是560而不是10。

我在考虑使用像isPreviousScoreChangedisCurrentScoreChanged这样的变量,比如检测按钮是否被按下和释放时,但是这也不能很好地工作。

我使用Stopwatch类来跟踪游戏开始后经过的秒数。

代码差不多是:

1
2
3
4
if (Stopwatch.ElapsedTicks == 5)
{
    playerScore += 10;
}

[我知道在这里粘贴代码是可能的,但是没有太多要粘贴的内容,而且到目前为止我所做的非常简单]

感谢大家阅读本书——)


这样做:

1
2
3
4
5
6
7
8
9
if (timer > TimeSpan.Zero)
{
   timer -= gameTime.ElapsedGameTime;
   if (timer <= TimeSpan.Zero)
   {
       playerScore += 10;
       timer = TimeSpan.Zero;
   }
}

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


首先,我建议不要使用勾号,因为一个勾号的时间很短。秒-如果每x秒更新一次,则使用模数运算符(如果效率更高)。

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

在这个例子中,分数应该每2秒更新一次。