2012-02-10 54 views
3

我在屏幕方法的渲染方法中使用「Gdx.input.isTouched()」來知道觸摸的位置,但是當觸摸被拖動到屏幕上時,它也會激活我只想要演員被感動。如何檢測一個演員在libgdx中被觸摸的時間?

是否有任何聽衆知道演員何時被觸摸,但該事件不是被拖動的,即時通訊使用精靈來做。

回答

10

看到這個wiki頁面關於scene2d在LibGDX。具體是關於輸入處理的部分。

基本上你必須重寫這些方法在演員的一種或多種:

public boolean touchDown (float x, float y, int pointer) { 
    return false; 
} 

public void touchUp (float x, float y, int pointer) { 
} 

public void touchDragged (float x, float y, int pointer) { 
} 

public boolean touchMoved (float x, float y) { 
    return false; 
} 

public boolean scrolled (int amount) { 
    return false; 
} 

public boolean keyDown (int keycode) { 
    return false; 
} 

public boolean keyUp (int keycode) { 
    return false; 
} 

public boolean keyTyped (char character) { 
    return false; 
} 
+5

對不起,對於過時的評論,但這些方法是從當前版本的Actor中刪除?似乎他們錯過了。 – iozee 2013-05-14 13:25:56

+2

Libgdx wiki包含有關處理事件的最新信息。請參閱http://code.google.com/p/libgdx/wiki/scene2d#Event_system – Ludevik 2013-05-16 16:12:20

0

我認爲你必須實現以下方法之一隻檢測單次觸摸沒有移動事件被執行用戶。

Gdx.input.justTouched(); 
1

in libGDX Actor裏面有一個監聽器。 例如,如果你想檢查一個按鈕是按下,還是檢查,你打電話: button.isPressed(),button.isCheck(),它返回布爾值。

0

我想你在舞臺上控制時,你有多個演員。