我正在使用Slick2D来编写一个小游戏,经过很长一段时间后,我改变了主意,决定我确实希望游戏可以调整大小。所以我尝试使用app.setResizable()命令,如Slick2D wiki(此处:How to make slick2d resizable)所示。但我的日食并没有找到那个方法,所以我再次在互联网上查找它,并注意到所有依赖于调整大小的属性和方法都缺失了(比如wasResized(),isResized(),setResizable()等等。) 。我有最新版本的Slick2D和eclipse,可能答案非常明显,但我一直在找几个小时而且找不到它。
感谢您的帮助。
答案 0 :(得分:2)
在你的StateBasedGame中,在你的main方法中,你可以调用lwjgl的Display对象,
Display.setResizable(true);
这将允许您调整显示窗口的大小/最大化。确保你有最新版本的lwjgl!
如果您想调整窗口大小并确保图形对象刷新它的大小,您应该在更新方法中调用它:
if(Display.getWidth() != container.getWidth() || Display.getHeight() != container.getHeight()) {
try {
app.setDisplayMode(Display.getWidth(), Display.getHeight(), false);
app.reinit();
} catch(Exception e) {
e.printStackTrace();
}
}
app是你的AppGameContainer类。如果您正在进行游戏状态,则可以在初始化时发送对状态的引用。如果没有,您可以对容器进行全局引用,以便在类中的任何位置使用此代码段。