暂停游戏,然后继续播放

问题描述 投票:0回答:1

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

我尝试过Thread.sleep(1000);

    Var.tropfeny = -10;      
    Var.tropfenx = Var.n1;   
    Var.playerPoints = 0;    
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
java pause
1个回答
0
投票

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

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

例如,如果您有说的代码

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

然后将其更改为

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

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

© www.soinside.com 2019 - 2024. All rights reserved.