LibGDX:在特定矩形中添加justTouched()

时间:2017-01-29 19:17:11

标签: java android libgdx

我正在使用此代码:https://github.com/libgdx/libgdx/wiki/A-simple-game

但我想改变雨滴消失的方式。我希望它在触摸时消失。

所以我补充说:

if (Gdx.input.justTouched()) {
  if (Gdx.input.getX() > raindrop.getX() &&
      Gdx.input.getX() < (raindrop.getX() + raindrop.getWidth()) &&
      Gdx.input.getY() > raindrop.getY() &&
      Gdx.input.getY() < (raindrop.getY() + raindrop.getHeight())) {
     dropSound.play();
     iter.remove();
  }
}

但它运作不佳。

感谢。

2 个答案:

答案 0 :(得分:0)

你可以做的是获取精灵的边界矩形,并检查你的鼠标是否在矩形内,以下代码可以帮助

if (Gdx.input.justTouched()) {
     if (raindrop.getBoundingRectangle().contains(Gdx.input.getX, Gdx.input.getY()) {
        dropSound.play();
        iter.remove();
     }
}

答案 1 :(得分:0)

使用camera.unproject(Vector)将您的屏幕坐标从点击或触摸转换为您的游戏世界。这是必需的,因为原点不一定相同,使用相机你也可以放大,移动,旋转等等。 Unprojecting会处理所有这些,并为您提供与指针位置匹配的游戏世界坐标。

if (Gdx.input.justTouched()) {
    Vector3 touchPos = new Vector3();
    touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
    camera.unproject(touchPos);
    if (raindrop.contains(touchPos.x,touchPos.y)) {
        dropSound.play();
        iter.remove();
   }
}