在Scene2D对话框LibGdx中打开2个对话框

时间:2016-04-09 18:43:26

标签: java dialog libgdx scene2d

我在游戏中使用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.wasTheCorrectAnswer用于确定应答后应使用哪个弹出屏幕 Player.rightAnswer用于处理对话外的答案 我的测试中有Player.hasAnswered和DialogOma.wasClicked。还没有通过谷歌搜索发现它。真的很感谢这里的人帮助:))

编辑:这是对话框的结果方法中发生的事情:

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

1 个答案:

答案 0 :(得分:0)

好吧,我在睡觉之后设法自己解决这个问题。我不得不将第一段代码作为自己的方法运行,该方法由变量" wasClicked"控制。以前我的按钮可以分配值"右"或"错误"但我必须让它接受价值"确定"为了摆脱循环。可能不是处理这个问题的最佳方式,但至少它可行。