Java Display.isCloseRequested()不会显示true

时间:2014-06-26 16:35:24

标签: java lwjgl

我刚刚开始使用LWJGL,所以这是一个令人难以置信的基本问题,但我已经在互联网上搜索并且没有解决方案。也可能是相关的:我在Mac上。

即使按下x按钮,Display.isCloseRequested()方法也拒绝返回true。下面是我整个“window”类的代码,它基本上是显示对象的shell。

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;


public class Window {
    public static void createWindow(int width, int height, String title){
        Display.setTitle(title);
        try {
            Display.setDisplayMode(new DisplayMode(width,height));
            Display.create();
        } catch (LWJGLException e) {
            e.printStackTrace();
        }   
    }
    public static void render(){
        Display.update();
    }
    public static boolean isCloseRequested(){
        System.out.println(Display.isCloseRequested());
        return Display.isCloseRequested();
    }
    public static int getWidth(){
        return Display.getDisplayMode().getWidth();
    }
    public static int getHeight(){
        return Display.getDisplayMode().getHeight();
    }
    public static String getTitle(){
        return Display.getTitle();
    }
}

此类由主类中的方法引用,如下所示:

private void run(){
        isRunning = true;
        while(isRunning){
            if (Window.isCloseRequested())
                stop();
            render();
        }
    }

即使单击x按钮,也永远不会运行stop方法。

1 个答案:

答案 0 :(得分:0)

http://ninjacave.com/lwjglbasics1这样的简单教程是否会产生类似的错误行为?

重要提示:我认为如果你再次调用isCloseRequested,还会重置一个实习生事件,这个事件是通过按下x按钮引起的。

因此,请尝试保存事件并删除syso-Line