java - 无法检测舞台 LIBGDX 中 Actor 的着陆事件

标签 java android libgdx touch-event

我正在用 libgdx 制作游戏。

每个级别都有一个类(class)。我为每个级别添加了一个阶段。 Actor 也被添加到这个阶段。我曾经用来检测舞台上的事件。

Gdx.input.setInputProcessor(stage); 

关卡对象在另一个名为 GameScreen 的类中实例化。 GameScreen 扩展了 Game 类。

我无法检测到舞台上 Actor 的触摸事件。我在每个 Actor 上添加了以下代码来检测触摸。

this.addListener(new InputListener(){
     public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
          System.out.println("touchdown at " + x + " " + y);
          return true;
      }
  });

有什么我想念的吗?我的级别类(class)是否应该扩展另一个类(class)?

最佳答案

您在创建新 Actor 时是否设置界限?重要的是,每个 actor 都应该设置边界,否则它不会记录任何触摸。 因此,actor 构造函数应该类似于:

    public someActor(){
    setBounds(someActorXPosition, someActorYPosition, someActorWidth, someActorHeight);
    this.addListener(new InputListener(){
...rest of your code...

然后,无论何时移动 actor,都不要忘记设置新的界限。 为我工作

关于java - 无法检测舞台 LIBGDX 中 Actor 的着陆事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133959/

相关文章:

java - 使用 "ORDER BY"对 SQLite 表进行排序 - Android

Android:当蓝牙 LE 设备进入范围并开始广播时,是否可以自动连接到它?

java - RecyclerView 中 MapView 的 IndexOutOfBoundsException

java - 我是否可以在不了解 Android 操作系统组件的情况下仅使用 LIBGDX 开发 Android 应用程序?

java - 在数据库事务期间进行 api 调用不是一个好习惯吗?

java - 如何使用java查找字符串中某个字符的出现?

java - Akka 如何从 ForkJoinPool 中获益?

java - 将伦敦时间和日期转换为 GMT +6 时间和日期

java - 如何将库添加到 LIBGDX 项目的依赖项 gradle

java - 我如何在 Java 的第 3 方 API "LibGDX"中跟踪耗时?