Движущийся актер с использованием события TouchDown в Scene2d

Я ищу способ переместить Актера, когда к нему прикасаются. Я пробовал код ниже. Однако связанный Актер не поддерживает событие приземления, поэтому я получаю NullPointerException.

actor.addListener(new InputListener() {
    public boolean touchDown (InputEvent event, float x, float y, int pointer, int button)     {
        event.getRelatedActor().addAction(moveBy(0,10,0.5f));
            return true;
    }
});

Какие-либо предложения?


person itamarb    schedule 14.02.2013    source источник


Ответы (1)


Вы хотите использовать getTarget(), чтобы получить Актера, от которого произошло событие.

Метод getRelatedActor() предназначен для событий, в которых участвуют два участника (например, изменение фокуса или события входа/выхода). В документе это не очень ясно, но если вы посмотрите на FocusEvent для getRelatedActor вы увидите, как он там используется.

person P.T.    schedule 14.02.2013