与您使用Java的Canvas类所做的类似,我正在尝试编写一种方法来设置LWJGL Display的最大大小。我碰到的唯一问题是LWJGL的Display类没有setWidth或setHeight方法,我想不出我能写自己的方法。我的第一个想法是以某种方式获得窗口使用的JFrame的实例,但没有任何方法可以让我感觉像是SOL。我也尝试过使用DisplayMode,并重新设置大小,但是它关闭了窗口并在每次调整大小时重新打开它。我试图编写一个方法,只需调整窗口的大小,就好像用户正在拖动它来放大它一样。有人知道我可以/应该这样做吗?考虑到在您手动拖动/调整大小之后,放大显示甚至不会更新,是否可以获得我期待的这种平滑最大尺寸效果?LWJGL Display.setWidth/Height?
0
A
回答
2
如果您需要对窗口进行更多控制,则可以尝试使用AWT Frame
作为LWJGL Canvas
的父级。这将允许您的代码利用默认的窗口方法,包括在Java标准库中找到的setWidth()
和setHeight()
,防止和控制窗口行为,并添加侦听器以运行某些事件的代码。
首先,import java.awt.*
然后设置代码看起来是这样的:
创建Frame
和Canvas
:
Frame frame = new Frame("LWJGL Game Window");
frame.setLayout(new BorderLayout());
Canvas canvas = new Canvas();
添加Canvas
到Frame
:
frame.add(canvas, BorderLayout.CENTER);
设置LWJGL并将其应用于Canvas
:
try {
Display.setParent(canvas);
frame.setPreferredSize(new Dimension(1024, 786));
frame.setMinimumSize(new Dimension(800, 600));
frame.pack();
frame.setVisible(true);
Display.create();
while(!Display.isCloseRequested() && !closeRequested)
{
// main code or call to code goes here
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT);
Display.update();
}
Display.destroy();
frame.dispose();
System.exit(0);
} catch (LWJGLException e) {
e.printStackTrace();
}
不知道有多少你知道Java的,但在这里,你可以添加一个ActionListerner
或ComponentListerner
如果窗口大小,做一些东西。
另请参阅LWJGL wiki AWT Frames。这至少应该有助于指引您朝着正确的方向发展。
相关问题
- 1. LWJGL NoClassDefFoundError
- 2. LWJGL 3D运动
- 3. LWJGL和Ogg/Mp3
- 4. LWJGL广告牌
- 5. LWJGL applet not loading
- 6. 分发LWJGL Jar
- 7. 使用LWJGL
- 8. LWJGL 3 Mouse Movement
- 9. LWJGL 3.2.0+字体
- 10. LWJGL广告牌
- 11. LWJGL教程
- 12. Assimp教程LWJGL
- 13. LWJGL透明度
- 14. LWJGL 3 Javadoc
- 15. LWJGL仅旋转
- 16. LWJGL不工作
- 17. java.library.path中的lwjgl
- 18. LWJGL glfwGetCursorPos问题
- 19. 3D采摘lwjgl
- 20. LWJGL&Slick2D 64位
- 21. Lwjgl camera following player
- 22. LWJGL&Slick Coloring Quads Error
- 23. LWJGL包含GUI类?
- 24. LWJGL立方体图
- 25. lwjgl 3 with projectionMatrix:Nothing render
- 26. LWJGL中的黑屏
- 27. LWJGL旋转对象
- 28. LWJGL的3D采摘
- 29. 使用glArrayElement和LWJGL
- 30. 加载纹理LWJGL