如何在一定时间段后增加分数?新纳
本文关键字:增加 新纳 时间段 定时间 | 更新日期: 2023-09-27 18:30:38
在
5 秒后增加玩家的分数有点卡住了。最终,我希望能够在所有不同的时间段后使用相同的逻辑将分数增加"x"量。目前,分数每秒增加 10 但 60 次(由于每秒调用 60 次更新方法)。这意味着分数最终是 560 而不是 10。
我正在考虑尝试使用诸如 isPreviousScoreChanged
和 isCurrentScoreChanged
等变量,例如在检测按钮是否已按下和释放时,但这也不是太好。
我正在使用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 秒更新一次。