【问题标题】:LibGDX - Return all actors at a specific stage coordinateLibGDX - 返回特定舞台坐标的所有演员
【发布时间】:2017-09-08 23:12:34
【问题描述】:

我正在尝试找到一种方法来“查看”特定舞台坐标处的所有演员,以查看是否有特定标识符(例如名称)。

stage 中的 hit 方法(如下面的代码所示)对此效果很好,但在找到第一个 actor 后会停止(如果多个 actor 重叠,则会出现问题)。

@Override
   public boolean touchDown(int screenX, int screenY, int pointer, int button) {
      Vector2 coord = stage.screenToStageCoordinates(new Vector2((float)screenX,(float)screenY));
      Actor hitActor = stage.hit(coord.x,coord.y,false);

      if(hitActor != null)
         Gdx.app.log("HIT",hitActor.getName());

      return true;
   }

在找到第一个 Actor 并在数组中返回结果(或其他类似方法)后,是否有任何方法可以让 hit 方法继续运行,或者我最好只循环所有 Actor 并检查是否边界每次都重叠?

【问题讨论】:

    标签: java libgdx scene2d


    【解决方案1】:

    我认为循环遍历所有演员并检查他们是否被击中是唯一的方法,因为 stage.hit() 只返回该接触点最深的演员。

    【讨论】:

    • 谢谢。所以要确认,“检查他们是否被击中”意味着检查两个演员之间的界限是否重叠?
    • 如果你想检查两个演员是否碰撞,是的。如果您想要触摸检测,您可以获取或制作一个边界矩形,然后调用 rect.contains(x, y)
    猜你喜欢
    • 2014-03-05
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2019-06-29
    • 2013-08-07
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多