LIBGDX Dialog TextButton - PullRequest
       81

LIBGDX Dialog TextButton

0 голосов
/ 18 января 2019

Я создал Skin Dialog в моей игре LIBGDX и добавил две текстовые кнопки. Я добавил к ним Слушатели, но они по-прежнему не активны.

Я искал все, что мог во всем Интернете и в стеке, и похоже, что я поступаю правильно, но я не знаю, что именно пошло не так

Вот мой код:

if (uiController.coinsIsReleased){

        label = new Label("GET FREE COINS?", uiSkin);
        label.setColor(0,0,1,1);
        label.setAlignment(Align.center);

        dialog = new Dialog("", uiSkin);

        ok = new TextButton("YES", uiSkin, "small");
        cancel = new TextButton("CANCEL", uiSkin, "small");


        dialog.getButtonTable().add(ok).width(100);
        dialog.getButtonTable().add(cancel).width(100);
        dialog.getContentTable().add(label);

        ok.addListener(new ChangeListener() {
            @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {

                System.out.println("OKOKOK");
            }
        });
        cancel.addListener(new ChangeListener() {
         @Override
            public void changed(ChangeListener.ChangeEvent event, Actor actor) {

                    System.out.println("CANCELLED");

            }
        });


        stage.addActor(dialog);

        dialog.show(stage);


    }

Я добавил InputMultiplexer и добавил Stage и InputAdapter, затем я установил его как InputProcessor.

Код ниже:

    multiplexer = new InputMultiplexer();
    stage = new Stage();
    uiController = new MenuUIController(game);
    multiplexer.addProcessor(stage);
    multiplexer.addProcessor(uiController);
    Gdx.input.setInputProcessor(multiplexer);

EDIT:

ОК. Думаю, я решил проблему с addListener, используя InputListener вместо ChangeListener:

    cancel.addListener(new InputListener(){
            @Override
            public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
                //dialog.cancel();
                //dialog.hide();
                System.out.println("CANCELLED");
                return true;
            }
        });

Я хочу отменить диалоговое окно и продолжить другие операции, но dialog.cancel () и dialog.hide () не работают

...