0

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

我正在考虑尝试使用isPreviousScoreChanged和之类的变量isCurrentScoreChanged,例如在检测是否已按下和释放按钮时,但这也不是很好。

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

代码差不多:

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

[我知道可以在这里粘贴代码,但粘贴的内容不多,到目前为止我所做的非常简单]

非常感谢大家阅读:-)

4

2 回答 2

1

做这样的事情:

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

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

于 2013-09-08T19:07:33.093 回答
0

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

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

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

于 2013-09-08T15:00:10.217 回答