C# 在一定时间段后如何增加分数?新华社
在5秒后增加球员的得分时有点困难。最终,我希望能够使用相同的逻辑,在所有不同的时间段后,通过“x”数量增加分数。目前,分数正在以每秒10到60次的速度递增(由于每秒调用更新方法60次)。这意味着分数最终是560而不是10 我想尝试使用变量,比如C# 在一定时间段后如何增加分数?新华社,c#,timer,xna,stopwatch,C#,Timer,Xna,Stopwatch,在5秒后增加球员的得分时有点困难。最终,我希望能够使用相同的逻辑,在所有不同的时间段后,通过“x”数量增加分数。目前,分数正在以每秒10到60次的速度递增(由于每秒调用更新方法60次)。这意味着分数最终是560而不是10 我想尝试使用变量,比如isPreviousScoreChanged和isCurrentScoreChanged,比如检测按钮是否被按下和释放,但是这也不是很好 我正在使用Stopwatch类来跟踪游戏开始以来经过的秒数 代码大致如下: if (Stopwatch.Elapsed
isPreviousScoreChanged
和isCurrentScoreChanged
,比如检测按钮是否被按下和释放,但是这也不是很好
我正在使用Stopwatch类来跟踪游戏开始以来经过的秒数
代码大致如下:
if (Stopwatch.ElapsedTicks == 5)
{
playerScore += 10;
}
[我知道可以在这里粘贴代码,但粘贴的内容不多,而且我到目前为止所做的工作非常简单]
非常感谢大家阅读:-)首先-我建议不要使用滴答声,因为一次滴答声的时间非常少。秒-如果每x秒更新一次,如果效率更高,则使用模数运算符
if((Stopwatch.elapsedmillyses%2000)==0){playerScore+=10}
在本例中,分数应每2秒更新一次。执行以下操作:
if (timer > TimeSpan.Zero)
{
timer -= gameTime.ElapsedGameTime;
if (timer <= TimeSpan.Zero)
{
playerScore += 10;
timer = TimeSpan.Zero;
}
}
if(计时器>时间跨度0)
{
计时器-=gameTime.ElapsedGameTime;
如果(计时器)这可能会有帮助,您是否可以确定每秒要增加多少分数,只需使用Stopwatch.elapsedmillesons(当然在转换为秒后)蒂姆:我之前把秒表转换成了秒,还说我想增加10,但这不起作用,因为分数肯定是每秒增加60倍10。谢谢你的回复。出于某种原因,这似乎不起作用。我已经注释掉了前面的代码,我只是使用了你推荐的代码上面。事实上,我刚刚再次运行了我的游戏,它随机运行了一次,但是我在它运行之前和之后运行了它,然后它就不工作了。我希望这是有意义的。再次感谢你的回复,我很感激:)它只有在被另一个函数调用时才工作。制作一个单独的线程可能是一个好主意,只有这样你才能使用一段时间(true)循环,增加分数并休眠x毫秒,直到再次触发。语法应该相当简单,请参见。酷,好,我会试试。非常感谢v Ianis:-)谢谢Pinckerman,这似乎很有效,尽管我一直在使用秒表课程……也许我可以稍微调整一下,但是这似乎有效,而且相对简单。谢谢:D这是我每次需要处理时间间隔时都要做的,所以我确信它确实有效:D