我刚刚开始使用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方法。
答案 0 :(得分:0)
像http://ninjacave.com/lwjglbasics1这样的简单教程是否会产生类似的错误行为?
重要提示:我认为如果你再次调用isCloseRequested,还会重置一个实习生事件,这个事件是通过按下x按钮引起的。
因此,请尝试保存事件并删除syso-Line