如何检测拖动输入何时结束 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
中,有一个方法 pan
和 panStop
。您应该实现该接口,从中添加所有方法,并使用 pan
进行拖动行为,并使用 panStop
来解决您的问题。这些方法注册触摸和鼠标以及多个手指触摸。
我不知道如何检测用户拖动事件何时结束,所以我决定这样做
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
中,有一个方法 pan
和 panStop
。您应该实现该接口,从中添加所有方法,并使用 pan
进行拖动行为,并使用 panStop
来解决您的问题。这些方法注册触摸和鼠标以及多个手指触摸。