如何在不触发justTouched()的情况下检测Libgdx中的滑动?

时间:2016-08-14 04:18:41

标签: java libgdx

我正在制作一个游戏,其中刷卡和justTouched做不同的事情。我的问题是,当我在屏幕上滑动时,显然也会触发touchDown()方法。

我正在扩展GestureAdapter:

@Override
    public boolean touchDown(float x, float y, int pointer, int button) {
        //move when screen is touched
        if(life == 1 && overlaps == false) {
            timeState = 0;
            velocity.y = -120;
            velocity.x = 100;
        }
        return super.touchDown(x, y, pointer, button);
    }

    @Override
    public boolean fling(float velocityX, float velocityY, int button) {
        if(velocityX > 10)
            //do something
        return super.fling(velocityX, velocityY, button);
    }

1 个答案:

答案 0 :(得分:2)

在这种情况下你不应该只使用触摸,因为当玩家第一次触摸时你不能知道它只是触摸或滑动。

你必须使用刚刚触摸的方法,如此

  1. 当玩家刚刚触摸时保存触摸的坐标。
  2. 检查玩家触摸时的坐标。
  3. 如果此2点之间的距离小于50像素(或您想要设置的限制),那么您可以假设它只是滑动,否则您可以进行滑动计算。