Java 暂停游戏,然后继续

Java 暂停游戏,然后继续,java,pause,Java,Pause,当我尝试暂停时,游戏屏幕只会冻结,不会暂停。我的意思是,我希望游戏等待,然后继续工作,而不是窗口不响应 我用Thread.sleep(1000)试过了 通过将Thread.sleep放置在该位置,您可能暂停了当窗口更改时会重新绘制窗口的线程,这就是为什么您这样做时屏幕会冻结 暂停游戏的正确方法是使用一个指示暂停状态的变量(类似于布尔暂停),只要设置了该布尔值,就根本不更新游戏状态 例如,如果您有这样的代码 foo.posX += foo.velocityX; // move the foo 然

当我尝试暂停时,游戏屏幕只会冻结,不会暂停。我的意思是,我希望游戏等待,然后继续工作,而不是窗口不响应

我用
Thread.sleep(1000)试过了


通过将
Thread.sleep
放置在该位置,您可能暂停了当窗口更改时会重新绘制窗口的线程,这就是为什么您这样做时屏幕会冻结

暂停游戏的正确方法是使用一个指示暂停状态的变量(类似于
布尔暂停
),只要设置了该布尔值,就根本不更新游戏状态

例如,如果您有这样的代码

foo.posX += foo.velocityX; // move the foo
然后你把它改成

if (!paused) {
  foo.posX += foo.velocityX; // move the foo
}

在基于事件的系统(如Swing UI)中,您通常根本不希望完全停止处理。您只想有选择地禁用某些行为。

这里没有足够的信息,但有一点很清楚:
Thread.sleep()
不会神奇地执行您希望“游戏暂停”执行的任何操作。
if (!paused) {
  foo.posX += foo.velocityX; // move the foo
}