2016-12-27 13 views
0

私は自分のレベルエディタを作ってるんだと私はスペースバーを押したときに手にカーソルを変更したい:setSystemCursor()が動作しない理由(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; 
} 

しかし、それは動作しませんし、私はなぜ知らない...何私は間違っている?

+0

あなたは「それは動作しません」と言う、あなたは何を意味するのですか?間違いはありますか? keyDownは呼び出されませんか?スペースキーは検出されませんか? – John

+0

スペースバーを押すと「スペースバーが押された」と表示されますが、カーソルは変更されず、エラーも表示されません。 – Lordeblader

答えて

1

Libgdx wiki pageによれば、LWJGL3バックエンドを必要とします。

あなたはまた、 LWJGL3バックエンドでとGWTのバックエンドでのみ動作、システムカーソルにカーソルを変更することができます。それは以下のように行うことができます。

Gdx.graphics.setSystemCursor(SystemCursor.Crosshair); 

後は、元のissueから取られる:

あなたは簡単のGradleでLWJGL 3バックエンド ためLWJGL 2のバックエンドを切り替えることができます。あなたのコア・プロジェクトの依存関係、変更:

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

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

にgdxVersionは、最新のスナップショットのバージョン1.7.3-SNAPSHOTに設定されていることを確認します。デスクトップランチャーで 、単にLwjgl3ApplicationConfigurationでLwjglApplicationConfiguration とLwjglApplicationを交換し、 Lwjgl3Application

+0

ありがとうございました! – Lordeblader

関連する問題