Lernpfad:Hehomon/13
Das Spiel (der sogenannte Game-Loop) funktioniert nun im Grunde schon (abgesehen davon, dass es bisher keinen Sieger gibt), aber wir haben noch eine Menge feinarbeit vor uns (in der Spieleentwicklung spricht man vom polishing, also dem polieren des Spiels.
Wir können zwar Fähigkeiten einsetzen, allerdings sehen wir noch nicht die Auswirkungen. Das ändern wir nun.
Lebensbalken
Die Anzeige der Lebenspunkte soll als farbiger Balken unter dem Angreifen und Verteidiger erscheinen.
Dei Balken bestehen in der einfachsten Variante aus zwei Rechtecken. Einem schwarzen Hintergrund (bzw. Rahmen) und einem farbigen Rechteck, dessen Breite den Anteil der vorhandenen Lebenspunkte anzeigt.
Wir wollen also einen weiteren Knoten an unseren Spielbaum hängen, an den wir wiederum die beiden Rechtecke als Blätter anhängen. Zusammen mit den Bildern der Hehomons (die ja auch Blätter im Spielbaum sind), sieht der Baum danach so aus:
Erstellt eine Klasse Lebensbalken, die von Knoten nach folgender Vorgabe:
public class Lebensbalken extends Knoten {
private Hehomon hehomon;
private Rechteck balkenHP;
private Rechteck balkenHG;
public Lebensbalken( Hehomon pHehomon, int pX, int pY ) {
hehomon = pHehomon;
balkenHG = new Rechteck(pX,pY,206,11);
balkenHG.farbeSetzen("Schwarz");
balkenHP = new Rechteck(pX+3,pY+3,200,5);
balkenHP.farbeSetzen(new Farbe(255, 255, 255));
aktualisiereDaten(pHp);
add(balkenHG);
add(balkenHP);
}
public void aktualisiereDaten( int pHpNeu ) {
double lpAnteil = ((double)hehomon.getLp()/hehomon.getLpMax());
balkenHP.breiteSetzen( (int)((double)(balkenHG.getBreite()-6) * lpAnteil) );
balkenHP.farbeSetzen(
new Farbe(
255 - ((int)(255.0 * lpAnteil)),
(int)(255.0 * lpAnteil),
0
)
);
}
}