LibGDX - 跟踪触摸时的点击事件

时间:2016-01-25 13:41:24

标签: java input libgdx toggle

我对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;

1 个答案:

答案 0 :(得分:0)

您可以使用实现InputProcessor类并通过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;
        }

    }));

这些行应该存在于构造函数或show方法中。