C#在两个回合之间等待,不要暂停脚本的其余部分
我目前的项目有4个玩家:1个人(你)和3个人工智能。这是一个原创病毒游戏的再创造,给出了一个想法。你做一个移动,然后游戏增加当前玩家的回合,检查它是否是AI,如果是,移动它。如果没有,让玩家(你)移动。在所有转弯之间,我有一个定时器设置C#在两个回合之间等待,不要暂停脚本的其余部分,c#,stopwatch,pause,C#,Stopwatch,Pause,我目前的项目有4个玩家:1个人(你)和3个人工智能。这是一个原创病毒游戏的再创造,给出了一个想法。你做一个移动,然后游戏增加当前玩家的回合,检查它是否是AI,如果是,移动它。如果没有,让玩家(你)移动。在所有转弯之间,我有一个定时器设置 using Systems.Diagnostics; //Inside the method. int timeBetweenTurns = 400; Stopwatch stpw = Stopwatch.StartNew(); While(stpw.Ela
using Systems.Diagnostics;
//Inside the method.
int timeBetweenTurns = 400;
Stopwatch stpw = Stopwatch.StartNew();
While(stpw.ElapsedMiliseconds < 400)
{
Application.Update();
}
使用系统诊断;
//在方法内部。
int timeBetweenTurns=400;
Stopwatch stpw=Stopwatch.StartNew();
而(stpw.elapsediliseconds<400)
{
Application.Update();
}
这适用于回合本身,但不适用于代码的其余部分。例如,我有一个重启按钮。我必须双击该按钮才能运行clickevent。关键是,我必须运行重启方法两次,因为AI仍然会轮到它
如何制作一个计时器,使其仅在每次转动后暂停,而不禁用按钮等元素?您可以使用多个线程。在C#中实现线程有很多方法——请参见此处:
Stopwatch
类与暂停或多线程无关。你想做什么?如果你想周期性地执行某件事情,请使用计时器。如果您想在不阻塞UI线程的情况下暂停方法,请使用wait Task.Delay()