我开始玩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);
}
...
}
我在这里缺少什么?
提前致谢!
答案 0 :(得分:1)
仅扩展InputAdapter
/实施InputProcessor
是不够的,您还需要告诉LibGdx
InputProcessor
现在应该监听输入事件。
因此,您需要使用Gdx.input.setInputProcessor(this)
BaseScreen
方法拨打show
如果您有多个InputProcessor
,应该监听输入事件,则需要使用InputMultiplexer
并致电Gdx.input.setInputProcessor(inputMultiplexer)
。然后,您可以向此多路复用器添加更多InputProcessor
。