5秒后,有点卡在增加玩家的分数上。最终,我希望能够使用相同的逻辑在所有不同的时间段后将分数增加'x'。目前,分数增加10但每秒增加60次(由于更新方法被称为每秒60次)。这意味着得分最终为560而不是10。
我正在考虑尝试使用isPreviousScoreChanged
和isCurrentScoreChanged
之类的变量,就像检测按钮是否被按下和释放一样,但这也不能很好地工作。
我正在使用Stopwatch
课来跟踪自游戏开始以来经过的秒数。
代码非常多:
if (Stopwatch.ElapsedTicks == 5)
{
playerScore += 10;
}
[我知道可以在这里粘贴代码但是没有太多的粘贴,而且到目前为止我做的很简单]
非常感谢大家阅读: - )
答案 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秒更新一次。