暂停游戏,然后继续

时间:2020-04-29 13:49:27

标签: java pause

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

我尝试过Thread.sleep(1000);

if (Var.tropfeny > 760) {     
    Var.tropfeny = -10;      
    Var.tropfenx = Var.n1;   
    Var.playerPoints = 0;    
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:1)

通过将Thread.sleep放置在该位置,您大概会暂停了线程,该线程会在窗口更改时重新绘制窗口,这就是为什么屏幕冻结的原因。

暂停游戏的正确方法是拥有一个指示暂停状态的变量(类似boolean paused),并且只要设置了布尔值就根本不更新游戏状态。

例如,如果您有说过的代码

foo.posX += foo.velocityX; // move the foo

然后将其更改为

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

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

相关问题