libGDX setCursorCatched和简单的配置错误

时间:2014-07-04 15:14:39

标签: libgdx

我试图在libGDX中找出一些非常奇怪的行为。以下面的简单应用程序代码为例。

package com.station40.desktop;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.backends.lwjgl.LwjglApplicationConfiguration;
import com.station40.Station40;

public class DesktopLauncher {
    public static void main (String[] arg) {
        LwjglApplicationConfiguration config = new LwjglApplicationConfiguration();
        config.width = 800;
        config.height = 600;
        LwjglApplication app = new LwjglApplication(new Station40(), config);
        Gdx.input.setCursorCatched(true);
    }
}

足够简单。我遇到了两个一致的问题:

  • 当光标实际上被捕获",不可见且无法移动时,javaw进程似乎冻结。 CPU使用率仅为1整个处理器。上面的类似代码停止执行正常的帧更新,除了setCursorCatch(true)之外没有其他更改被调用。这里发生了什么?我做错了什么?
  • 令人讨厌的是,从Eclipse启动时,应用程序完全忽略配置;每次我运行一个应用程序时,它都会在如下的小窗口中打开:http://i.imgur.com/cK1dwMR.png。我第一次运行这个应用程序,它打开800x600罚款。从那以后,它(就像之前的所有其他东西一样)回到了这个小窗口。作为参考,全屏完全失败:我得到了分辨率更改,但我没有看到窗口。我的老鼠甚至被捕了。

之前有没有人遇到过这些问题?我已按照维基上的说明使用Gradle设置进行设置。我已经使用libGDX很长时间了,直到现在才遇到这些问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

让这成为更新库的所有版本的一课。或者,更好的是,只保留一份!我的旧libGDX实用程序项目正在导入旧版本的libGDX,而新版本使用Gradle系统导入新版本。两者没有很好地融合并导致所有列出的问题。

我将旧的实用程序项目移动到一个新的Gradle管理项目中,现在情况正在好转。

对于那些想知道的人,这是因为lwjgl期望窗口大小的某个缓冲区在一个版本中处于(顶部,底部,左侧,右侧)顺序,而在另一个版本中处于(顶部,左侧,底部,右侧)顺序。我希望它不喜欢产生的0高度负宽度窗口!