如何在一定时间段后增加分数?新纳

本文关键字:增加 新纳 时间段 定时间 | 更新日期: 2023-09-27 18:30:38

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

我正在考虑尝试使用诸如 isPreviousScoreChangedisCurrentScoreChanged 等变量,例如在检测按钮是否已按下和释放时,但这也不是太好。

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

代码几乎是:

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

[我知道可以在这里粘贴代码,但没有太多要粘贴的内容

,到目前为止我所做的非常简单]

非常感谢大家阅读:-)

如何在一定时间段后增加分数?新纳

做这样的事情:

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 秒更新一次。