所以我刚刚在WinForms中制作了一个简单的蛇游戏,而我只剩下一个问题。我的想法是,我要实施一次加电,以加速播放器10秒钟。我试过使用线程。 sleep方法,用于创建计时器,但它会使整个程序休眠。我也尝试过使用task.delay
方法,但没有成功。
我是用错误的方式处理此问题,还是我只是缺少一些东西?您有什么技巧可以帮助我走上正确的道路?我对此很陌生,所以这可能很容易解决。
var watch = new Stopwatch();
watch.Start();
using (var task = Task.Delay(10000))
{
speedUp = true;
task.Wait();
}
watch.Stop();
speedUp = false;
这是我对延迟的尝试。但是它似乎会在整个程序暂停10秒后再继续。
谢谢
答案 0 :(得分:2)
您可能希望通过查看游戏循环中的时钟来查看过去的时间。属性Environment.TickCount为您提供自上次启动以来的毫秒数,或者您可以使用DateTime or Timespan进行操作。现在,您无需检查睡眠状态,而是可以检查自启动电源以来是否已经过了10,000毫秒。这样一来,任何东西都不会被阻塞,并且在10秒内收集多次通电不会破坏停用过程。