java - 如何在 Libgdx 中将触摸输入发送到舞台?

标签 java libgdx

我正在尝试映射键盘的按键以触摸舞台上的某个点。 这是我当前的代码,但它不会崩溃或执行任何操作。

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/

相关文章:

java - JTable/JXTable 如何设置列宽?

java - JPA 2.0 提供程序 hibernate

java - 当 url 不变时,使用 Java Selenium 跨多个页面抓取数据

java - 如何在libgdx中通过单击和双击实现不同的事件?

java - 基于 vector 和点的四元数旋转

java - libgdx的gradlew在Fedora中不起作用

java - 如何为循环中的形状着色?

java - JUnit 测试 - 对模拟对象进行 Assets 或验证(或两者)?

java - Cordova 插件 CallLog 找不到符号

java - 使用 LibGDX 创建角色选择屏幕