Windows下LibGDX无边框全屏窗口鼠标位置偏移问题
解决LibGDX无边框全屏窗口鼠标Y坐标偏移问题
问题原因
当手动设置无边框窗口尺寸与屏幕分辨率一致时,操作系统可能会默认调整窗口位置以避开任务栏(尽管视觉上窗口已经覆盖任务栏),导致鼠标坐标的计算仍基于原窗口位置,出现Y轴偏移任务栏高度的情况。
解决方案
方案一:使用原生全屏模式(推荐)
直接调用setFullscreenMode方法,LibGDX会自动处理无边框、全屏以及坐标对齐问题,无需手动设置窗口尺寸和位置:
fun main(args: Array<String>) { val displayMode = Lwjgl3ApplicationConfiguration.getDisplayMode() Lwjgl3Application(Orbitrucker("assets/native", displayMode), Lwjgl3ApplicationConfiguration().apply { setTitle("Orbitrucker") setFullscreenMode(displayMode) setAutoIconify(true) }) }
方案二:强制窗口定位到屏幕左上角
如果坚持使用窗口化无边框模式,添加setWindowPosition(0, 0)强制窗口对齐屏幕左上角,修正坐标计算的基准:
fun main(args: Array<String>) { val displayMode = Lwjgl3ApplicationConfiguration.getDisplayMode() Lwjgl3Application(Orbitrucker("assets/native", displayMode), Lwjgl3ApplicationConfiguration().apply { setTitle("Orbitrucker") setWindowedMode(displayMode.width, displayMode.height) setResizable(false) setDecorated(false) setAutoIconify(true) setWindowPosition(0, 0) // 强制窗口从屏幕左上角开始渲染 }) }
内容的提问来源于stack exchange,提问作者UncleBob
相关产品推荐
相关产品推荐

