所以我对一些代码有一些疑问。在这里,InputProcessor用于处理输入处理器,但现在定义了哪种输入。显然,由于它是绘制按钮的代码,因此可以与鼠标单击配合使用。但是Inputprocessor如何知道将要输入哪种输入?
第二个问题是关于按钮代码。因此,实现了该按钮,其中有一个添加侦听器和一个新的Changelistener,它接收一个事件和一个参与者。该事件将是通过鼠标右键单击吗?但是actor =是什么?是单击的按钮还是其他按钮?
我尝试试验代码并阅读了libgdx和scene2d的文档,但并没有给我带来很多关于问题的解释
Stage HandleStage = new Stage();
Gdx.input.setInputProcessor(HandleStage);
--------------------------------------------------------
Button is implemented
TextButton start= new TextButton("starts game", skin);
start.addListener(new ChangeListener() {
@Override public void changed(ChangeEvent event, Actor actor) {
start();
}
});
答案 0 :(得分:0)
Gdx.input.setInputProcessor以InputProcessor的一个实例作为参数,您的HandleStage
是Stage实现此接口的参数。 InputProcessor具有以下方法:
public boolean keyDown(int keycode);
public boolean keyUp(int keycode);
public boolean keyTyped(char character);
public boolean touchDown(int screenX, int screenY, int pointer, int button);
public boolean touchUp(int screenX, int screenY, int pointer, int button);
public boolean touchDragged(int screenX, int screenY, int pointer);
public boolean mouseMoved(int screenX, int screenY);
public boolean scrolled(int amount);
Stage实现了此功能,例如,如果单击Button,则通过touchDown事件进行处理。
我真的不太理解您的第二个问题,到目前为止,我从event
的changed()中知道可以获取目标并将其设置为处理。在Event类中查找更多信息。我认为演员是Button,但只需编写以下内容即可尝试:System.out.println(actor == start);