gpt4 book ai didi

java - InputProecssor 如何自动区分输入?

转载 作者:行者123 更新时间:2023-12-02 04:54:26 24 4
gpt4 key购买 nike

所以我对一些代码有一些疑问。这里使用了一个InputProcessor来处理输入处理器,但是现在它定义了什么样的输入。显然,它适用于鼠标单击,因为它是绘制按钮的代码。但是输入处理器如何知道将会出现什么样的输入呢?

第二个问题是关于按钮代码的。因此,按钮的实现是通过获取一个 addlistener 和一个新的 Changelistener 来实现的,它需要一个事件和 actor。该事件将是通过鼠标点击,对吧?但是 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();
}
});

最佳答案

Gdx.input.setInputProcessor 将 InputProcessor 的实例作为参数,您的 HandleStage 是一个实现此接口(interface)的 Stage。输入处理器有以下方法:

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 实现了这一点,并在单击按钮时通过 touchDown 事件进行处理。

我不太明白你的第二个问题,到目前为止我从changed()中的事件知道你可以获取Target并将其设置为处理。查看 Event 类以获取更多信息。我认为 actor 是 Button,但只需编写以下代码即可尝试: System.out.println(actor == start);

关于java - InputProecssor 如何自动区分输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56417556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com