Java LIBGDX,从另一个类调用InputHandler的TouchDown方法

时间:2014-07-15 21:16:58

标签: java android libgdx

我刚开始使用LibGDX和Java,我需要一些帮助。我在从inputhandlers类调用touchdown方法时遇到问题。

这是一个InputHandler类:

public class InputHandler implements InputProcessor {
private Bird myBird;
private GameWorld myWorld;

public InputHandler(GameWorld myWorld) {

   this.myWorld = myWorld;
   myBird = myWorld.getBird();
}

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {

    if (myWorld.isReady()) {
        myWorld.start();
    }

    myBird.onClick();

    if (myWorld.isGameOver() || myWorld.isHighScore()) {
        // Reset all variables, go to GameState.READ
        myWorld.restart();
    } 
    return true;
}

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

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

@Override
public boolean keyTyped(char character) {
    return false;
}

@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
    return false;
}

@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
    return false;
}

@Override
public boolean mouseMoved(int screenX, int screenY) {
    return false;
}

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

}

我希望我的GameScreen类调用TouchDown方法,因为我创建了一个舞台和一个带有scene2d的actor(按钮)。我希望你理解我的问题,非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我想你没有将这个类的实例设置为InputProcessor

尝试

InputHandler handler = new InputHandler(world);
Gdx.input.setInputProcessor(handler);

如果您想设置多个InputProcessor,可以使用InputMultiplexer

这是api link


wiki for this topic似乎也很有用。

希望这有帮助。
祝你好运。