我在游戏中使用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;
}
}
答案 0 :(得分:0)
好吧,我在睡觉之后设法自己解决这个问题。我不得不将第一段代码作为自己的方法运行,该方法由变量" wasClicked"控制。以前我的按钮可以分配值"右"或"错误"但我必须让它接受价值"确定"为了摆脱循环。可能不是处理这个问题的最佳方式,但至少它可行。