# HILFE bei Spieleprogrammierung mit Slick2D



## BassBaum (17. Jan 2017)

Hallo alle zusammen. 

Ich hoffe mir kann jemand weiter helfen. 
Derzeit programmiere ich ein Spiel mit Slick2D. Ein Teil davon sind Quizfragen, wie bei "Wer wird Millionär".
Einige Kenntnisse habe ich auch schon mit Slick2D. Mein Spiel läuft auch im Gewissen grade, nur die Fragen bekomme ich nicht hin und weiß auch nicht wie ich das nur mit Slick2D hinbekommen soll. 
Es soll so aussehen, dass ein Bild zu sehen sein, mit Frage und vier Antwortmöglichkeiten, die Richtige Antwort soll natürlich dann ausgewählt werden können. Am besten soll dann auch gezeigt werden, wenn die Antwort falsch ist, was die richtige Antwort ist. 

Ich danke schon mal für jede Hilfe.
BassBaum


----------



## Joose (17. Jan 2017)

Wo genau liegt denn nun das Problem? Was ist deine Frage?
http://www.java-forum.org/thema/wie-man-fragen-richtig-stellt.7407/


----------



## BassBaum (17. Jan 2017)

mein Problem liegt darin, dass ich leider nicht weiß, wie ich das angehen soll, die Fragen in das Spiel einzuarbeiten. Und wie ich die Fragen beispielsweise mit gfx.drawString anzeigen lasse, dann kann ich die Antwort nicht auswählen. Außerdem muss das Programm wissen welche Frage falsch und welche richtig ist. Da weiß ich leider auch nicht wie ich dass machen kann das es funktioniert.


----------



## Joose (17. Jan 2017)

BassBaum hat gesagt.:


> mein Problem liegt darin, dass ich leider nicht weiß, wie ich das angehen soll, die Fragen in das Spiel einzuarbeiten.


Was hast du denn schon für Ansätze probiert?



BassBaum hat gesagt.:


> Und wie ich die Fragen beispielsweise mit gfx.drawString anzeigen lasse, dann kann ich die Antwort nicht auswählen.


Warum kannst du keine Antwort auswählen wenn du die Frage anzeigen lasst?
Ohne Frage anzeigen kannst du eine Antwort auswählen?




BassBaum hat gesagt.:


> Außerdem muss das Programm wissen welche Frage falsch und welche richtig ist. Da weiß ich leider auch nicht wie ich dass machen kann das es funktioniert.


Wie würdest du es denn realisieren wenn das ganze eine Konsolenanwendung wäre? Wie würdest du dir da abspeichern welches die richtige Frage ist usw?
Die gleiche Logik kannst du auch hier anwenden. Der einzige Unterschied ist wie der Input bzw. Output verarbeitet wird, die Logik zur Überprüfung auf die richtige Frage ist eigentlich gleich


----------



## BassBaum (17. Jan 2017)

So in etwa sieht das in meinem Spiel auch aus, dass oben die Frage steht und die vier Antwortmöglichkeiten. Mein Problem ist, dass ich das nicht auswählen kann

```
if(zufall <=6 && frageAktiv == true){
                fragenkarte.draw(250,200);
                gfx.drawString("Wann wurde die Mauer in\n Berlin niedergerissen?", 260, 225);
                gfx.drawString("1) 1990", 270, 305);
                gfx.drawString("2) 1987", 390, 305);
                gfx.drawString("3) 1988", 270, 350);
                gfx.drawString("4) 1989", 390, 350);
        }
```

und ich auch nicht überprüfen kann ob die Antwort falsch oder richtig ist


----------



## JCODA (17. Jan 2017)

Tja, du musst natürlich deinem Programm irgendwo mitteilen, welche Antwort nun die Richtige ist, für das "Auswählen" musst du ganz normal "Kollisionsabfragen" machen, oben bietet sich sowas wie Rechtecke an. Werden die "Formen" komplizierter bieten sich sowas wie ColorMaps an, aber das ist wohl zu aufwendig hier...


----------



## Joose (17. Jan 2017)

Wie @JCODA schon sagt für das auswählen musst du eben umrechnen wo die Maus klickt und welche Antwort "dahinter" liegt.

Kümmere dich zuerst mal um eines der 2 Probleme ... ich würde dazu raten dich um das "Auswahlproblem" zu kümmern. Erst wenn das funktioniert kümmere dich um das andere.


----------



## JuKu (18. Jan 2017)

Wenn du drawString() aufrufst, macht die Methode auch nicht mehr als Draw - also zeichnen!
Du musst selbst prüfen, ob sich die Maustaste beim Klicken innerhalb des Buttons befindet und dann entsprechend reagieren.

Hier mal etwas Pseudo Code:

```
//This is only example code, without Software Design!
//more like Pseudo Code

//button position
int buttonX = 200;
int button Y = 200;
int buttonWidth = 100;
int buttonHeight = 50;

//call this method, if mouse click
public void onMouseClick (float mouseX, float mouseY) {
    //check x first
    if (mouseX >= buttonX && mouseX <= (buttonX + buttonWidth)) {
        //check y
        if (mouseY >= buttonY && mouseY <= (buttonY + buttonHeight)) {
            //player has clicked button

            //...
        }
    }
}
```

Oder du verwendest dafür eine GUI Library, z.B. NiftyGUI für Slick2D.


----------



## Jardcore (25. Jan 2017)

Andere Frage/Antwort, ich glaube Slick2D wird nicht mehr weiter entwickelt.
Ich würde vielleicht zu Libgdx wechseln und damit dein Glück probieren.


----------



## JuKu (31. Jan 2017)

Da hast du recht!
Slick2D ist schon seit vielen Jahren to t.
Aber solange er nur lernen will und nichts besonderes braucht, ist es für ihn relativ irrelevant, was er nutzt.


----------

