在转到我的其他代码之前,通过文本显示我的游戏 2 秒

Display my game over text for 2 seconds before going to my other code

我试过使用 Thread.sleep() 但它会在非常短暂地显示游戏结束之前完全暂停程序。我也曾尝试在 Thread.sleep() 之前通过文本显示游戏,但我看不到它。以下是我目前正在使用的。

try{
    Thread.sleep(2000);//pause for 2 seconds
    //display gameover
    gr.setColor(Color.WHITE);
    gr.setFont(new Font("arial", Font.BOLD, 50));
    gr.drawString("Game Over", 550, 300);
}
catch(InterruptedException e){
}

例如,您可以定义一个布尔值 showText,然后用它来确定是否要显示文本。

public void runGameLogic() {
    showText = true;
    Timer t = new Timer(2000, (action) -> {
        showText = false;
    });
    t.setRepeats(false);
    t.start();
}

public void render() {
    if (showText) {
        gr.setColor(Color.WHITE);
        gr.setFont(new Font("Arial", Font.BOLD, 50));
        gr.drawString("Game Over", 550, 300);
    }
}