LibGDX - 跟踪触摸点击事件

LibGDX - track tap event on touch

我是 LibGDX 的新手,遇到了一些问题。 我正在创建一个 2D 游戏,并希望在我单击矩形时打开和关闭我的声音效果。

 private boolean soundOn = true;
 private Rectangle soundRect;
 private Vector2 touchPoint;

 public Constructor(){
     soundRect = new Rectangle();
     touchPoint = new Vector2(0, 0);
 }

 public void update(float delta){       
        if (Gdx.input.isTouched()) {
            touchPoint = new Vector2(Gdx.input.getX(), Gdx.input.getY());
            soundRect = new Rectangle(83, 0, 78, 63);
            if (soundRect.contains(touchPoint)) {
                soundOn = false;
            }
        }
 }

这个方法我也试过,但是好像也不行

if (Gdx.input.isTouched()) {
         touchPoint.set(Gdx.input.getX(), Gdx.input.getY());

        if ((touchPoint.x >= soundRect.x) &&

                (touchPoint.y >= soundRect.y) && 
                (touchPoint.x <= soundRect.x + soundRect.width)&&           (touchPoint.y <= soundRect.y + soundRect.height)) {
                    Gdx.app.log("sound", "toggles");
                    soundOn = false;
                }
    }

我知道代码还没写完,应该可以切换回true,但是暂时连false都切换不了;

您可以使用 InputProcessor class 并通过 Gdx.input.setInputProcessor() 注册

或者您应该使用 GestureAdapter 跟踪点击移动

Gdx.input.setInputProcessor(new GestureDetector(new GestureAdapter(){
        @Override
        public boolean tap(float x, float y, int count, int button) {

             //here you can write code for touch event.
              return true;
        }

    }));

这些行应该出现在构造函数或显示方法中。