Lernpfad:Hehomon/8

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Im Spiel sollen die Hehomons in einer Arena gegeneinander antreten. Die Arena soll in einem Fenster angezeigt werden und ist die Basis für alles, was später in unserem Spiel dargestellt wird.

Bevor wir die Arena Klasse umsetzen, müssen wir aber ein paar Details darüber erfahren, wie die Engine-Alpha funktioniert.

Wurzeln und Knoten

Alles, was in der Welt eines Engine-Alpha Spiels angezeigt wird, muss eine Verbindung zur „Wurzel“ des Spiels haben. Die Wurzel ist der Ursprung eines „Baumes“, der aus verschiedenen „Knoten“ besteht.

Das klingt jetzt erstmal sehr kompliziert, ist es aber gar nicht, wenn man erstmal ein Bild sieht:

EA Tree.png

Der rote Kreis ist die „Wurzel“, also der Ursprung des „Baumes“. Die blauen Kreise sind „Knoten“ im Baum und die grünen Knoten sind die „Blätter“. Das sind die Elemente, die tatsächlich zu sehen sind, wie ein Rechteck oder ein Bild von deinem Hehomon.

Icon Info.png

Wenn dir dieses Gebilde bekannt vorkommt, dann liegst du ganz richtig. Aus dem Mathematikunterricht kennst du zum Beispiel Wahrscheinlichkeitsbäume.

Nur Blätter, die über irgendeinen Weg mit der Wurzel verbunden sind (auch über mehrere Knoten) werden dargestellt. In diesem Beispiel würde also das untere Bild nicht angezeigt werden.

EA Tree 2.png

Die Dokumentation der Engine-Alpha enthält weitere Details, wie das funktioniert.

Die Kampfarena

Unsere Kampfarena soll also ein Knoten werden, den wir an die Wurzel hängen können. Dazu benutzen wir wieder Vererbung und erstellen eine Unterklasse der Oberklasse Knoten, die uns die Engine-Alpha bereitstellt. Folgender Quelltext bildet das Gerüst unserer neuen Arena Klasse.

import ea.*; // Import der Engine-Alpha Klassen (hier konkret Knoten)

public class Arena extends Knoten {
	
	public Arena() {
		
	}

}
BlueJ Logo.png
Arbeitsauftrag

Erstellt eine Arena Klasse in eurem Projekt.

In der Darstellung des Baums oben ist unsere Arena also ein blauer Knoten. Als erstes "Blatt" soll sie nun ein Bild als Hintergrund bekommen, das die Arena darstellt. Dazu müssen wir ein Objekt der Klasse Bild erstellen und der Arena mit der add() Methode anhängen.

Icon Info.png

add() ist in der Klasse Knoten implementiert. Da Arena alle Methoden von Knoten erbt, besitzt sie auch eine add() Methode.

BlueJ Logo.png
Arbeitsauftrag

Ergänze den folgenden Quelltext im Konstruktor der Arena.

Bild hintergrund = new Bild(0, 0, "images/hintergrund.jpg");
add(hintergrund);

Lies dann in der API-Dokumentation der Engine-Alpha nach, was die Parameter der Klasse Bild bedeuten, und welche Konstruktoren und Methoden es noch gibt.


Noch ist nichts zu sehen, dazu fehlt noch eine weitere Klasse, die ihr im nächsten Schritt erstellt.