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