2
進出口檢驗libgdx但我被陷在用戶輸入處理。使用Gdx.input直接從渲染方法libgdx - 演員輸入事件不觸發
我的第一次嘗試,但我覺得自己像重新發明輪子因爲我寫了很多的代碼來檢測時,我得到的觸摸事件的輸入區域。
我幾乎可以肯定有更好的方式應該使用演員類,但有件事情我必須錯becase的事件永遠不會火做。
這裏是我的代碼:
...
Texture texture = new Texture(Gdx.files.internal("assets/sprite-sheet.png"));
singlePlayerButton = new Image("SinglePlayerButton", new TextureRegion(texture,0,0,50,50)){
@Override
public boolean touchDown(float x, float y, int pointer) {
// TODO Auto-generated method stub
System.out.println("touch down");
return super.touchDown(x, y, pointer);
}
@Override
public void touchUp(float x, float y, int pointer) {
System.out.println("touch up");
}
};
stage.addActor(singlePlayerButton);
...
public void render(float delta) {
// Clear the screen
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.draw();
spriteBatch.end();
}
圖像顯示良好,但沒關係我就可以點擊多少次,我從來沒有得到過觸發的事件。我錯過了什麼?註冊事件?我在Stage或Actor類中找不到任何addTouchListener()方法。
謝謝!
謝謝兄弟,這是一個愚蠢的問題,但這個遊戲引擎劇照缺乏從好的文檔(這不是針對發動機評論家,說實話,我認爲這是一個很棒的項目)。我可以隨時用不同的階段覆蓋這個輸入處理器嗎? – rsan 2012-03-18 18:11:47
您可以使用InputMultiplexer這一點。您可以根據需要添加/刪除InputProcessors到多路複用器。或者只需在需要時設置另一個InputProcessor。 – Ludevik 2012-03-18 19:07:55
TNX,可以完美運行:) – rsan 2012-03-18 23:09:52