为什么setSystemCursor()不工作(libgdx)?

时间:2016-12-27 16:08:56

标签: libgdx

我正在创建自己的关卡编辑器,我想在按下空格键时将光标更改为一只手:

@Override
public boolean keyDown(InputEvent event, int keycode) {
    switch (keycode) {
    case Input.Keys.SPACE:
        System.out.println("Spacebar is pressed");
        Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Hand);
        break;
    }
    return true;
}

@Override
public boolean keyUp(InputEvent event, int keycode) {
    switch (keycode) {
    case Input.Keys.SPACE:
        Gdx.graphics.setSystemCursor(Cursor.SystemCursor.Arrow);
        break;
    }
    return true;
}

但它没有用,我也不知道为什么......我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据Libgdx wiki page,它需要LWJGL3后端:

  

您也可以将光标更改为系统光标,这仅适用于   LWJGL3后端和GWT后端。它可以按如下方式完成:

Gdx.graphics.setSystemCursor(SystemCursor.Crosshair);

以下摘自原始issue

  

您可以轻松切换LWJGL 3后端的LWJGL 2后端   在Gradle。在您的核心项目依赖项中,更改:

compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
     

compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
     

确保将gdxVersion设置为最新的快照版本1.7.3-SNAPSHOT。   在桌面启动器中,只需替换LwjglApplicationConfiguration即可   Lwjgl3ApplicationConfiguration和LwjglApplication   Lwjgl3Application