暂停按钮的游戏c#

本文关键字:游戏 按钮 暂停 | 更新日期: 2023-09-27 18:07:33

我只想创建一个简单的暂停按钮,如果有必要,可能还会创建另一个按钮来恢复。我一直在寻找周围,我主要看到Thread.Sleep(),这对我来说不起作用,因为我希望暂停保持暂停状态,直到用户需要。

Thread.Suspend()不能工作,因为它现在已经过时了。

我也看到了另一种创建第二种形式的解决方案,然而,这似乎不适合我。一旦第二种形式打开,整个程序就关闭了。

我不确定这是否有区别,但我的程序目前使用两个线程(主线程与另一个线程一起运行form1)。理想情况下,一切都需要暂停。

暂停按钮的游戏c#

最简单的方法就是设置一些其他线程可以访问的变量/属性。

Bool ShouldPause = false;

另一个线程应该在它的游戏循环中包含如下内容:

while(true)
{
  if(!ShouldPause)
  {
    UpdateGame();
  }
  Draw();
}

只有当ShouldPause变量为false时,游戏才会继续。我做了几次,效果很好。

你不希望通过一些类似于"Suspend"的函数来暂停线程,因为它会阻止他在屏幕上绘图,并且会看起来像它没有响应。

您可以使用线程信令技术。一个好的开始是看一下ManualResetEvent Class