2016-04-09 14 views
2

Ich benutze den Scene2d Dialog in meinem Spiel um Pop-ups zu erstellen. Sie sollen Fragen sein und der Spieler muss sie beantworten. Nachdem der Spieler die Frage beantwortet hat, soll er ein weiteres Pop-up erstellen, um Feedback zu geben. Der antwortende Teil funktioniert korrekt und identifiziert die richtige Antwort. Ich kann den Feedback-Button jedoch nicht korrekt erstellen. Derzeit wird dem Spieler eine Frage gestellt. Dann antwortet er und nichts. Wenn er eine weitere Frage gestellt bekommt, erscheint die Rückmeldung über die nächste Frage. TLDR: Frage -> Antwort -> Feedback in einer Schleife ist was ich suche. Hier ist der Code für den Teil, der nicht richtig funktioniert:2 Dialoge im Scene2D-Dialog öffnen LibGdx

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()); 

Die meisten Code ist nur das Sprachpaket zu prüfen, verwendet werden. DialogOma.wasTheCorrectAnswer wird verwendet, um zu bestimmen, welcher Popup-Bildschirm nach der Beantwortung verwendet werden soll. Player.rightAnswer wird verwendet, um die Antwort außerhalb des Dialogs Player.hasAnswered und DialogOma.wasClicked zu beantworten. Hab noch nichts gefunden, indem du es gegoogelt hast. Wäre wirklich schätzen

EDIT :) hier Jungs helfen: Hier ist, was im Ergebnis Methode des Dialogs geschieht:

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

Antwort

0

Okay, konnte ich dies nach über sie schlafen, allein zu lösen. Ich musste den ersten Teil des Codes als eine eigene Methode ausführen, die von der Variablen "wasClicked" gesteuert wird. Zuvor konnten meine Tasten mit den Werten "richtig" oder "falsch" belegt werden, aber ich musste sie auch den Wert "ok" akzeptieren lassen, um aus der Schleife herauszukommen. Wahrscheinlich nicht der beste Weg, damit umzugehen, aber zumindest funktioniert es.