我正在尝试映射键盘的按键以触摸舞台上的某个点。 这是我当前的代码,但它不会崩溃或执行任何操作。
InputEvent touch = new InputEvent();
touch.setType(InputEvent.Type.touchUp);
touch.setStageX(400);
touch.setStageY(200);
currentStage.getRoot().fire(touch); //this doesn't do anything
创建 currentStage 实例并将其设置为 InputProcessor。我在 400,200 上放置了一个按钮来捕获该事件,但上面的代码未能执行此操作。
最佳答案
您似乎期望 InputEvent 使层次结构中的每个参与者与坐标进行比较以确定其是否响应。这不是 Stage 处理输入事件的方式。
当实际的屏幕触摸发生时,Stage 会确定哪个 actor 被触摸,并直接在该 actor 上触发 InputEvent。如果您在根上触发手动创建的InputEvent,则只有根有机会响应它。
如果你想手动创建一个输入事件并让舞台决定将其交给哪个actor,你可以调用stage.hit()
,如果它返回一个Actor,那就是可触摸的触摸点下方的 Actor,您可以在该 Actor 上触发事件。
关于java - 如何在 Libgdx 中将触摸输入发送到舞台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49344570/