Java:在游戏中退出确认

时间:2015-12-28 18:48:48

标签: java

代码正常工作,直到达到no选项,一旦点击no选项口吃,然后关闭。另一方面,yes选项工作正常并立即关闭。 " loader.cleanUP();"用于删除vbos和vaos,因此需要它。我会感激一些帮助。

while(!Display.isCloseRequested()) {
        renderer.render(model);         
        renderer.prepare();
        // add logic!
        DisplayManager.updateDisplay();
    }
        int dialogButton = JOptionPane.YES_NO_OPTION;
        int dialogResult = JOptionPane.showConfirmDialog(null, "Would you like to exit?", "Exit Confirmation", dialogButton);

        if(dialogResult == 0) {
          System.out.println("Yes option");
          loader.cleanUP();
          System.exit(0);
        }

2 个答案:

答案 0 :(得分:1)

您在一开始就有一个while循环,检查关闭请求并呈现模型。一旦请求关闭,无论用户是否单击,您都会退出此循环。你需要包含另一个循环中显示的所有代码,它只是永远运行。

答案 1 :(得分:0)

  1. 将您的while更改为do-while
  2. 不要退出System.exit(0); ...您正在使用的API可能有自己的退出方法,在退出之前卸载资源。这是必要的,因为通常情况下,资源将被加载到GPU,并且不会被Java的本机方法卸载(仅通过API的专用方法)。
  3. 如果您的API具有此类,请使用Display.setCloseRequested(true)(或类似),而不是此int dialogResult噱头。这与您在避开System.exit(0);时退出游戏的方式有关,如上一项所述。
  4. 如果你的API没有提供它自己,你需要一个单独的循环来运行游戏世界。最好在没有时间漂移错误的情况下实施Delta-Time来维护动画。