簡體   English   中英

有沒有辦法根據顯示器的最大界限調整 Libgdx window 的大小?

[英]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);

https://javadoc.lwjgl.org/org/lwjgl/glfw/GLFW.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM