如何检测拖动输入何时结束 libgdx

How to detect when drag input is end in libgdx

我不知道如何检测用户拖动事件何时结束,所以我决定这样做

protected class Input extends DragListener{
    boolean dragging=false;

    @Override
    public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
        return true;
    }

    @Override
    public void touchDragged(InputEvent event, float x, float y, int pointer) {
        if(!dragging)dragging=true;
            *my game logic*
            .
            .
            .
    }

    @Override
    public void touchUp(InputEvent event, float x, float y, int pointer, int button) {
        Gdx.app.log("touch up","");
        if (dragging) {
            *my game logic*
            .
            .
            .
        }

    }
}

我通过拖动和修饰来尝试 class,但没有任何反应。 我再次拖动,没有任何反应。然后我点击,控制台打印 "touchUp" 两次。 还有什么可以检测的吗

在位于 GestureDetector 的接口 GestureListener 中,有一个方法 panpanStop。您应该实现该接口,从中添加所有方法,并使用 pan 进行拖动行为,并使用 panStop 来解决您的问题。这些方法注册触摸和鼠标以及多个手指触摸。