Как определить, когда актера трогают в libgdx? - PullRequest
3 голосов
/ 11 февраля 2012

Я использую «Gdx.input.isTouched ()» в методе рендеринга моего метода Screen, чтобы знать, где происходит касание, но когда касание перетаскивается на экран, оно также активирует события, которые я хочу, только когда актер тронут.

Есть ли слушатель, который знает, когда происходит прикосновение к актеру, но событие не перетаскивается, я делаю это со спрайтами.

Ответы [ 4 ]

10 голосов
/ 11 февраля 2012

Смотрите эту вики-страницу о scene2d в LibGDX.В частности, часть об обработке ввода.

В основном вы должны переопределить один или несколько из этих методов в вашем акторе:

public boolean touchDown (float x, float y, int pointer) {
    return false;
}

public void touchUp (float x, float y, int pointer) {
}

public void touchDragged (float x, float y, int pointer) {
}

public boolean touchMoved (float x, float y) {
    return false;
}

public boolean scrolled (int amount) {
    return false;
}

public boolean keyDown (int keycode) {
    return false;
}

public boolean keyUp (int keycode) {
    return false;
}

public boolean keyTyped (char character) {
    return false;
}
1 голос
/ 04 октября 2012

в libGDX Actor имеет слушателя внутри.Например, если вы хотите проверить, когда кнопка нажимается или проверяется, вы звоните: button.isPressed(), button.isCheck(), возвращается логическое значение.

0 голосов
/ 26 июля 2013

Я думаю, что вы контролируете в сцене, когда у вас есть несколько актеров.

0 голосов
/ 05 апреля 2012

Я думаю, что вам нужно реализовать один из следующих методов, чтобы обнаружить только одно касание, а не событие перемещения, выполняемое пользователем.

Gdx.input.justTouched();
...