Lernpfad:Hehomon/17
Zur Navigation springen
Zur Suche springen
Der letzte Schritt für unser Spiel. Ein Element fehlt noch, um die grafische Benutzeroberfläche (kurz GUI) komplett zu machen: Das Auswahlmenü für die Fähigkeiten des Angreifers, die vom Spieler ausgewählt werden können.
Das Menü ist ähnlich zur Anzeige
. Es besteht aus einem dunklen Hintergrund und weißem Text. Das Menü hat aber statt einer Textzeile insgesamt vier, pro Fähigkeit eine. Die setText
Methode wird um einen Parameter int zeile
erweitert, der angibt, für welche Zeile der Text gesetzt werden soll.
Eine Mögliche Version eines Auswahlmenüs könnte so aussehen:
import ea.*;
public class Auswahlliste extends Knoten {
private Rechteck hintergrund;
private Text zeile1, zeile2, zeile3, zeile4;
public Auswahlliste( int pX, int pY ) {
hintergrund = new Rechteck(pX, pY, 400, 110);
hintergrund.farbeSetzen(new Farbe(0, 0, 0, 133));
add(hintergrund);
zeile1 = new Text("", pX+5, pY+5, "Luckiest Guy Regular", 20, 0, "Weiss");
zeile2 = new Text("", pX+5, pY+30, "Luckiest Guy Regular", 20, 0, "Weiss");
zeile3 = new Text("", pX+5, pY+55, "Luckiest Guy Regular", 20, 0, "Weiss");
zeile4 = new Text("", pX+5, pY+80, "Luckiest Guy Regular", 20, 0, "Weiss");
add(zeile1);
add(zeile2);
add(zeile3);
add(zeile4);
}
public void setText( int zeile, String pText ) {
if( zeile == 1 ) {
zeile1.setzeInhalt("A: " + pText);
} else if( zeile == 2 ) {
zeile2.setzeInhalt("S: " + pText);
} else if( zeile == 3 ) {
zeile3.setzeInhalt("D: " + pText);
} else if( zeile == 4 ) {
zeile4.setzeInhalt("F: " + pText);
}
}
}
Arbeitsauftrag
- Übernehmt die Klasse
Auswahlliste
in euer Projekt und analysiert die Klasse. - Erzeugt ein neues Objekt der
Auswahlliste
im Konstruktor derArena
und fügt sie dem Arena-Knoten hinzu. - Setzt den Text der vier Zeilen auf die Namen der Fähigkeiten des Angreifer-Hehomons.
Lösung
Im Konstruktor von Arena
:
auswahl = new Auswahlliste(100, 500);
auswahl.setText(1, angreifer.getNameAngr1());
auswahl.setText(2, angreifer.getNameAngr2());
auswahl.setText(3, angreifer.getNameVert1());
auswahl.setText(4, angreifer.getNameVert2());
add(auswahl);