2014-01-08 22 views
1

我想要做的是在Android中使用android.view.GestureDetector和android.view.ScaleGestureDetector類,但它們似乎被LibGDX禁用。我需要專門訪問Android在用戶觸摸屏幕時生成的MotionEvent對象。任何人都可以幫助我指出正確的方向或確認LibGDX是否確實禁用了它們?提前致謝。您可以使用LibGDX獲得Android MotionEvents

+0

http://stackoverflow.com/questions/15177049/android-libgdx-swipe-左和右檢測用手勢偵聽。檢查它是否有幫助 – Raghunandan

+0

我檢出了你提供的鏈接,但它沒有幫助,因爲我需要訪問用戶觸摸屏幕時生成的Android MotionEvent對象。 –

回答

3

libgdx上已經有了GestureDetector的抽象。該GestureListener您可以使用它像這樣:

public class MyGestureListener implements GestureListener { 

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

    @Override 
    public boolean tap (int x, int y, int count) { 
     return false; 
    } 

    @Override 
    public boolean longPress (int x, int y) { 
     return false; 
    } 

    @Override 
    public boolean fling (float velocityX, float velocityY) { 
     return false; 
    } 

    @Override 
    public boolean pan (int x, int y, int deltaX, int deltaY) { 
     return false; 
    } 

    @Override 
    public boolean zoom (float originalDistance, float currentDistance) { 
     return false; 
    } 

    @Override 
    public boolean pinch (Vector2 initialFirstPointer, Vector2 initialSecondPointer, Vector2 firstPointer, Vector2 secondPointer) { 
     return false; 
    } 
} 

不要忘了將它設置爲一個InputProcessor

Gdx.input.setInputProcessor(new GestureDetector(new MyGestureListener())); 

參考:Gesture Detection

作爲一個小加,如果你發現Android的東西具體的,你想使用libgdx,這個鏈接可能會幫助你:Interfacing with Platform Specific Code

+0

對不起,但我需要再次訪問Android MotionEvent對象,因爲它們是在用戶觸摸屏幕時生成的。 –

+2

您不能直接在Libgdx中使用MotionEvent,因爲這意味着您只是爲Android開發的。這些gestureListener確實檢測到這些事件,即使在桌面上或瀏覽器內部!如果你想直接看到這些libgdx wiki,那麼如何將android的東西直接傳遞給核心Projekt。 (例如,參見AdMob教程)https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx 如果您想用libgdx「方式」說這是正確的答案。 – BennX

相關問題