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

我目前正在努力解决一个我认为很简单的问题。我正在用c#做一个乒乓球游戏。我正在尝试实现一个30秒的倒计时,一旦时间用完,它会将玩家踢回主菜单

下面是处理启动新游戏的方法。我相信这是放置计时器的最好地方

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
)。不需要计时器。当然,这只在你不能暂停游戏的情况下起作用-如果你支持暂停,你需要一种稍微不同的方法。