[英]Is there a way to resize a Libgdx window based on the monitor's maximum bound?
我的意思是有沒有辦法將 window 大小設置為與此方法給出的結果相關: GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds() ? 與 Gdx.graphics.getWidth() 和 Gdx.graphics.getHeight() 相比,這會返回不同的結果:它們返回屏幕大小,但我想要的是屏幕區域 - 菜單欄區域(例如在 Mac 上停靠)。 我還想在這樣做時保持 window 的比率。
我嘗試使用 Java.awt 方法 GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(),但無法運行。 我在谷歌上查看,人們說使用 Java.awt 方法和 Libgdx 會導致問題,所以我想這就是原因。
如果你的意思是你希望 window 在開始時最大化,那么你可以直接在Lwjgl3ApplicationConfiguration config
中設置它
config.setMaximised(true);
您可以在開始后最大化(這低於 libGDX 提供的抽象)。
GLFW.glfwMaximizeWindow(window.getWindowHandle);
https://www.glfw.org/docs/3.3/window_guide.html#window_sizelimits
您可以使用配置上的偵聽器捕獲 window。
config.setWindowListener(new Lwjgl3WindowAdapter() {
@Override
public void created(final Lwjgl3Window window) {
如果您需要在程序中知道沒有菜單欄等的可用尺寸(相當於 AWT GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()
那么
GLFW.glfwGetMonitorWorkarea(long monitor, int[] xpos, int[] ypos, int[] width, int[] height);
使用GLFW.glfwGetPrimaryMonitor()
然后你可以構建一個自定義的 window 最大化器
GLFW.glfwSetWindowPos(long window, int xpos, int ypos);
GLFW.glfwSetWindowSize(long window, int width, int height);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.