C# 执行30秒倒计时时出现问题
我目前正在努力解决一个我认为很简单的问题。我正在用c#做一个乒乓球游戏。我正在尝试实现一个30秒的倒计时,一旦时间用完,它会将玩家踢回主菜单 下面是处理启动新游戏的方法。我相信这是放置计时器的最好地方C# 执行30秒倒计时时出现问题,c#,timer,countdowntimer,pong,C#,Timer,Countdowntimer,Pong,我目前正在努力解决一个我认为很简单的问题。我正在用c#做一个乒乓球游戏。我正在尝试实现一个30秒的倒计时,一旦时间用完,它会将玩家踢回主菜单 下面是处理启动新游戏的方法。我相信这是放置计时器的最好地方 public void StartNewGame() { scene = new GameScene(this); //Start timer //If timer <= 0 { load main
public void StartNewGame()
{
scene = new GameScene(this);
//Start timer
//If timer <= 0
{
load main menu
}
}
public void StartNewGame()
{
场景=新游戏场景(此);
//启动计时器
//如果计时器您需要为此使用线程
在一个线程中,您将运行游戏,其中包含一些变量,定义游戏是否仍应运行
在另一个线程上,你只需按你希望等待的时间量睡眠。如果你想四处寻找库,C#会提供各种各样的花式计时器。睡眠完成后,或计时器类结束后,你可以在游戏线程中翻转标志,这会使游戏停止
您可以这样运行游戏线程:
Thread thread = new Thread();
thread.Start(() => { //start your game });
您还可以使用任务
静态类,只要您异步运行游戏,它的性能可能会更好。在.Net framework中至少有3个内置计时器-有System.Threading.Timer
,System.Timer.Timer
和System.Windows.Forms.Timer
。您应该使用其中一个哼哼。记住游戏是什么时候开始的。在每个游戏上打勾,检查游戏开始后是否已经30秒了((DateTime.Now-startTime)。TotalSeconds<30
)。不需要计时器。当然,这只在你不能暂停游戏的情况下起作用-如果你支持暂停,你需要一种稍微不同的方法。