我刚开始使用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(按钮)。我希望你理解我的问题,非常感谢你的帮助。
答案 0 :(得分:0)
我想你没有将这个类的实例设置为InputProcessor
。
尝试
InputHandler handler = new InputHandler(world);
Gdx.input.setInputProcessor(handler);
如果您想设置多个InputProcessor
,可以使用InputMultiplexer
。
这是api link。
wiki for this topic似乎也很有用。
希望这有帮助。
祝你好运。