LibGDX 如何识别手势滑动?

LibGDX How to recognize a gestureswipe?

我正在使用一个可以显示不同案例的应用程序。您可以向右或向左滑动,具体取决于您的选择。拖动的东西是有效的,但问题是要知道对象何时被滑动并放到你想要的方向。我该如何继续?
(类似于火种应用程序)

public class SimpleGestureDetector extends GestureDetector {


public interface DirectionListener {
    void onLeft();

    void onRight();

    void onUp();

    void onDown();
}

public SimpleGestureDetector(DirectionListener directionListener) {
    super(new DirectionGestureListener(directionListener));
}

private static class DirectionGestureListener extends com.badlogic.gdx.input.GestureDetector.GestureAdapter {
    DirectionListener directionListener;

    public DirectionGestureListener(DirectionListener directionListener){
        this.directionListener = directionListener;
    }

    @Override
    public boolean fling(float velocityX, float velocityY, int button) {
        if(Math.abs(velocityX)>Math.abs(velocityY)){
            if(velocityX>0){
                directionListener.onRight();
            }else{
                directionListener.onLeft();
            }
        }else{
            if(velocityY>0){
                directionListener.onDown();
            }else{
                directionListener.onUp();
            }
        }
        return super.fling(velocityX, velocityY, button);
    }

}

}

应用程序屏幕的外观:

  stage = new Stage();
    SimpleGestureDetector sgd = new SimpleGestureDetector(new SimpleGestureDetector.DirectionListener() {

        @Override
        public void onUp() {
            leaf.setY(leaf.getY()+100);
        }

        @Override
        public void onRight() {
            leaf.setX(leaf.getX()+100);

            }
        }

        @Override
        public void onLeft() {
            leaf.setX(leaf.getX()-100);
        }

        @Override
        public void onDown() {
            leaf.setY(leaf.getY()-100);
        }


    });

当用户在屏幕上拖动手指时,将调用您的平移方法。因此,当拖动开始时,您的方法将获得手指的 x 和 y 坐标。当第一次调用 pan 时,你应该记住它们。使用一些 bool 变量,称为 "firstCall" 或 somethig 所以当调用 pan 时,检查它并从 true 设置为 false...

然后,当用户抬起手指时,将调用 panStop。同样,您将收到 x 和 y 坐标。因此,将它们与您之前记得的那些进行比较,并做一些基本的数学运算。即如果旧 y 几乎与新 y 相同,则表示滑动是水平的。如果新 x 比旧 x 大,则表示向右滑动。诸如此类。

https://github.com/libgdx/libgdx/wiki/Gesture-detection