touchDragged如何在libgdx中工作?

时间:2014-05-19 06:33:27

标签: android libgdx game-development

我目前正在学习libgdx游戏编程,现在我已经学会了如何使用touchDown但是我不知道如何使用touchDragged。计算机如何知道手指被拖动的方向(用户是否向左拖动或右)

2 个答案:

答案 0 :(得分:12)

电脑不知道。或者至少界面不会告诉你这些信息。它看起来像这样:

public boolean touchDragged(int screenX, int screenY, int pointer);

与touchDown几乎相同:

public boolean touchDown(int screenX, int screenY, int pointer, int button);

发生touchDown事件后,只会发生touchDragged个事件(对于相同的指针),直到touchUp事件被触发为止。如果你想知道指针移动的方向,你必须通过计算最后一个接触点和当前接触点之间的差值(差值)来自己计算。这可能是这样的:

private Vector2 lastTouch = new Vector2();

public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    lastTouch.set(screenX, screenY);
}

public boolean touchDragged(int screenX, int screenY, int pointer) {
    Vector2 newTouch = new Vector2(screenX, screenY);
    // delta will now hold the difference between the last and the current touch positions
    // delta.x > 0 means the touch moved to the right, delta.x < 0 means a move to the left
    Vector2 delta = newTouch.cpy().sub(lastTouch);
    lastTouch = newTouch;
}

答案 1 :(得分:0)

触摸位置改变的每一帧都会调用触摸拖动方法。 每次触摸屏幕时都会调用降落方法,并在释放时触摸。

LibGDX - Get Swipe Up or swipe right etc.?

这可以帮助你一点点。