LibGDX中无法设置config.height和config.width参数问题求助
问题原因
你参考的2020年旧教程里直接修改Lwjgl3ApplicationConfiguration公开width/height字段的写法已经失效。新版LibGDX的Lwjgl3桌面后端把这两个配置字段改成了私有属性,不允许直接赋值,必须调用配置类提供的公开方法设置窗口参数。
修正方案
把原来直接给config.width、config.height赋值的两行删掉,换成setWindowedMode方法设置初始窗口宽高即可。
修正后的完整DesktopLauncher代码:
package com.mygdx.game; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; import com.mygdx.game.chess; public class DesktopLauncher { public static void main (String[] arg) { Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); config.setForegroundFPS(60); config.setTitle("Chess"); // 设置初始窗口为800x800的窗口化模式 config.setWindowedMode(800, 800); // 可选:需要禁止用户手动拖拽调整窗口大小就加这行 // config.setResizable(false); new Lwjgl3Application(new chess(), config); } }
注:你原代码里导入的
com.badlogic.gdx.Gdx在启动类中没有被实际使用,可以直接删除,属于冗余代码不影响运行。
额外常用配置参考
- 要限制窗口可调整的尺寸范围,调用
config.setWindowSizeLimits(最小宽, 最小高, 最大宽, 最大高)即可,比如要锁死窗口始终为800x800,除了设置不可拉伸之外,也可以传config.setWindowSizeLimits(800,800,800,800) - 游戏运行过程中要动态切换窗口尺寸,不要修改启动配置,直接在游戏逻辑里调用
Gdx.graphics.setWindowedMode(新宽度, 新高度)即可,切换全屏则调用Gdx.graphics.setFullscreenMode()。 - 2021年之后Lwjgl3后端做过一次重构,所有配置项都改成了对应setter方法调用的形式,不要再直接给配置类的公共字段赋值,这类旧写法基本都已经失效。
内容的提问来源于stack exchange,提问作者hmood
相关产品推荐
相关产品推荐

