java - 我如何检测是否在 Java libGDX 中触摸了 Sprite ?

标签 java android libgdx

在过去的几天里,我一直在将我的游戏 ( Apopalypse ) 移植到 Android 移动平台。我在 Google 上快速搜索了 Sprite 触摸检测,但没有找到任何有用的信息。每个气球一旦被触摸就会弹出,我只需要检测它是否被触摸。 这是我的气球生成代码:

渲染(x、y、宽度和高度是随机的):

public void render() {
    y += 2;
    balloon.setX(x);
    balloon.setY(y);
    balloon.setSize(width, height);
    batch.begin();
    balloon.draw(batch);
    batch.end();
}

在主游戏类中生成:

addBalloon(new Balloon());

public static void addBalloon(Balloon b) {
    balloons.add(b);
}

最佳答案

在您的类中使用 render 方法可以执行以下代码:

Vector3 touchPoint=new Vector3();

void update()
{
  if(Gdx.input.justTouched())
   {
    //unprojects the camera
    camera.unproject(touchPoint.set(Gdx.input.getX(),Gdx.input.getY(),0));
    if(balloon.getBoundingRectangles().contains(touchPoint.x,touchPoint.y))
     {
      // will be here when balloon will be touched
     }
    }
   }

关于java - 我如何检测是否在 Java libGDX 中触摸了 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501268/

相关文章:

java - libGDX:如何将纹理裁剪为圆形

java - Hibernate 配置错误(找不到元素 'hibernate-configuration' 的声明)

java - Spark 数据帧加入范围慢

java - 解析 DecimalFormat 以避免科学计数法

android - Room bulk Insert 是否可以使用 Conflict Strategy IGNORE 为插入的值返回 List<T>?

java - 替换在 Body Editor Loader 中创建的用于角色动画的装置

java - 格拉德鲁 : no source code available for type "userclass"

java - Android 9 Api 28 通知未显示

java - Set<String> 不保存所有数据?

android - 如何从Android模拟器获取鼠标悬停事件