在场景2D对话框LibGdx中打开2个对话框



我在游戏中使用Scene2d对话框来创建弹出窗口。他们应该是问题,球员必须回答。玩家回答完问题后,应该创建另一个弹出窗口来提供反馈。回答部分工作正常,正如识别正确答案一样。但是,我无法正确创建反馈按钮。目前玩家被问到一个问题。然后他回答了,什么也没有。当他被问到另一个问题时,反馈会出现在下一个问题的顶部。TLDR:问题->答案->一个循环中的反馈是我想要的。以下是无法正常工作的部分的代码:

do{
    if(DialogOma.wasClicked) {
        if (DialogOma.wasTheAnswerCorrect) {
            int ID = friendlyNPCs.get(j).getID();
                if(GameScreen.isEnglish) {
                    diaTest = new DialogOma("Questionjabs", disTestSkin, 1, myBundleEn, ID, "resultoikein", "ok");
                                         }
                else{
                    diaTest = new DialogOma("Vastausmies", disTestSkin, 1, myBundleFi, ID, "resultoikein", "ok");
                    }
                    diaTest.getSkin().getFont("default-font").getData().setScale(3f, 3f);
                    diaTest.show(stage);
                    DialogOma.wasTheAnswerCorrect = false;
                    Player.rightAnswer = true;
                    DialogOma.wasClicked = false;
                    Player.hasAnswered = true;
                                            }
                    else if (!DialogOma.wasTheAnswerCorrect) {
                        int ID = friendlyNPCs.get(j).getID();
                            if(GameScreen.isEnglish){
                                diaTest = new DialogOma("Vastausmies", disTestSkin, 1, myBundleEn, ID, "resultvaarin", "ok");
                                                    }
                            else{
                                diaTest = new DialogOma("Vastausmies", disTestSkin, 1, myBundleFi, ID, "resultvaarin", "ok");
                                }
                     diaTest.getSkin().getFont("default-font").getData().setScale(3f, 3f);
                     diaTest.show(stage);
                     DialogOma.wasTheAnswerCorrect = false;
                     Player.rightAnswer = false;
                     DialogOma.wasClicked = false;
                     Player.hasAnswered=true;
                        }
                    }
                }while(!Player.hasAnswered&&!diaTest.isVisible());

大部分代码只是为了检查要使用的语言包。DialogOma.wasCorrectAnswer用于确定应答后应使用哪个弹出屏幕Player.rightAnswer用于处理对话框之外的答案根据我的测试,Player.hasAnswered和DialogOma.wasClicked都在那里。还没有通过谷歌搜索找到aything。非常感谢这里的帮助,伙计们:)

编辑:以下是对话框的结果方法:

        if(object.equals("correct")) {
        ChangeScreens.gameIsOn = true;
        wasTheAnswerCorrect = true;
        wasClicked = true;
    }
    else{
        ChangeScreens.gameIsOn = true;
        wasTheAnswerCorrect = false;
        wasClicked = true;
    }
}

好吧,我睡了一觉之后自己解决了这个问题。我必须让第一段代码作为自己的方法运行,该方法由变量"wasClicked"控制。以前,我的按钮可以分配值"对"或"错",但我必须让它也接受值"好"才能退出循环。这可能不是最好的处理方式,但至少它能起作用。

最新更新