2015-12-29 56 views
1

我開始玩libGDX,並開發一個包含多維數據集和切片的簡單遊戲。class在libGDX中擴展了inputAdapter,但碰到無法識別的

我的問題是:創建屏幕管理

public abstract class BaseScreen extends InputAdapter implements Screen { 
     ... 
    } 

在哪裏特定屏實現類泛型類後:

public class PlayingScreen extends BaseScreen { 
    ... 
    @Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
     System.out.print("You touch on next position: (" + screenX + ", " + screenY + ")"); 
    } 
} 

執行這個簡單的例子時,沒有什麼是控制檯登錄...創建一個擴展InputAdapter並將其設置爲輸入處理器的特定類時,它以前有效:

public class UserInputManager extends InputAdapter {...} 

public class MainGame implements ApplicationListener{ 
    ... 
    public create(){ 
     UserInputManager uim = new UserInputManager(); 
     Gdx.input.setInputProcessor(uim); 
    } 
    ... 
} 

我在這裏錯過了什麼?

在此先感謝!

+0

你是否在UserInputManager中實現了任何方法? – mattbdean

+0

這是以前的版本,其中我實現了touchDown(int screenX,int screenY,int指針,int按鈕)方法(與上述內容完全相同) –

+0

因爲您將Gdx的輸入處理器設置爲'UserInputManager',所有事件都是要去那個班。如果你沒有實現任何方法,他們將不會被收到 – mattbdean

回答

1

這是不夠的,延長InputAdapter /實施InputProcessor,你還需要告訴LibGdxInputProcessor現在應該監聽輸入事件。
爲此,您需要撥打 s show方法中的Gdx.input.setInputProcessor(this)
如果您有多個InputProcessor(應該監聽輸入事件),則需要使用InputMultiplexer並致電Gdx.input.setInputProcessor(inputMultiplexer)。然後你可以添加更多InputProcessor到這個多路複用器。

相關問題