touchDown работает, но touchUp не работает libGDX

Я хочу обнаружить событие touchUp, когда пользователь касается моего актера (который вызывает флай), я пробовал touchDown, и он обнаруживает это, но touchUp не получает вызов после отпускания пальца.

fly.addListener(new InputListener(){
        @Override
        public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) {
            return super.touchDown(event, x, y, pointer, button);
        }

        @Override
        public void touchUp(InputEvent event, float x, float y, int pointer, int button) {

            super.touchUp(event, x, y, pointer, button);
            System.out.println("touched");
        }

    });

Я уже настроил свой процессор ввода. любая идея, что не так?


person Hung Teoh    schedule 26.07.2018    source источник


Ответы (1)


Согласно документации, touchUp сработает только в том случае, если touchDown вернет true.

touchUp (событие InputEvent, float x, float y, указатель int, кнопка int)

Вызывается, когда кнопка мыши или касание пальца поднимается в любом месте, но только если touchDown ранее возвращал значение true для кнопки мыши или касания.

Пытаться

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

    @Override
    public void touchUp(InputEvent event, float x, float y, int pointer, int button) {

        super.touchUp(event, x, y, pointer, button);
        System.out.println("touched");
    }

});
person dfour    schedule 26.07.2018