class在libGDX中扩展inputAdapter,但触摸无法识别

时间:2015-12-29 15:30:23

标签: java libgdx

我开始玩libGDX,用立方体和瓷砖开发一个简单的游戏。

我的问题是:在为屏幕管理创建通用类之后

   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);
    }
    ...
}

我在这里缺少什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

仅扩展InputAdapter /实施InputProcessor是不够的,您还需要告诉LibGdx InputProcessor现在应该监听输入事件。
因此,您需要使用Gdx.input.setInputProcessor(this) BaseScreen方法拨打show 如果您有多个InputProcessor,应该监听输入事件,则需要使用InputMultiplexer并致电Gdx.input.setInputProcessor(inputMultiplexer)。然后,您可以向此多路复用器添加更多InputProcessor