如何确定事件处理的优先级 (LIBGDX)
How to priorize eventhandling (LIBGDX)
我有一个屏幕:
WorldScreen implements Screen, InputProcessor{
....
stageGui.addActor(storyActor);
....
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
}
}
我有一个演员 :
public class StoryActor extends Group {
private InputListener listener = new InputListener() {
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
event.handle();
}
}
}
当点击演员时,首先处理来自 WorldScreen 的触摸。然后处理来自 StoryActor 的 touchUp。
我怎样才能首先处理演员?
看看 https://github.com/libgdx/libgdx/wiki/Event-handling#inputmultiplexer 如何使用输入多路复用器应该可以解决您的问题。
而不是在您的 WorldScreen 中实现 InputProcessor。为 InputProcessor 创建一个新的 class 例如:WorldScreenInputProcessor implements InputProcessor
之后,您可以使用 InputMultiplexer 来处理多个 InputProcessor:
InputMultiplexer multiplexer = new InputMultiplexer();
//What you add first has higher priority
multiplexer.addProcessor(stageGui); //Input of your Actor
multiplexer.addProcessor(new WorldScreenInputProcessor());
Gdx.input.setInputProcessor(multiplexer);
我有一个屏幕:
WorldScreen implements Screen, InputProcessor{
....
stageGui.addActor(storyActor);
....
@Override
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
}
}
我有一个演员 :
public class StoryActor extends Group {
private InputListener listener = new InputListener() {
@Override
public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
event.handle();
}
}
}
当点击演员时,首先处理来自 WorldScreen 的触摸。然后处理来自 StoryActor 的 touchUp。
我怎样才能首先处理演员?
看看 https://github.com/libgdx/libgdx/wiki/Event-handling#inputmultiplexer 如何使用输入多路复用器应该可以解决您的问题。
而不是在您的 WorldScreen 中实现 InputProcessor。为 InputProcessor 创建一个新的 class 例如:WorldScreenInputProcessor implements InputProcessor
之后,您可以使用 InputMultiplexer 来处理多个 InputProcessor:
InputMultiplexer multiplexer = new InputMultiplexer();
//What you add first has higher priority
multiplexer.addProcessor(stageGui); //Input of your Actor
multiplexer.addProcessor(new WorldScreenInputProcessor());
Gdx.input.setInputProcessor(multiplexer);