Lernpfad:Hehomon/9: Unterschied zwischen den Versionen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 11: Zeile 11:
# Die Klassen der {{Engine-Alpha}} müssen ''importiert'' werden (<code>import ea.*;</code>).
# Die Klassen der {{Engine-Alpha}} müssen ''importiert'' werden (<code>import ea.*;</code>).
# <code>Spiel</code> muss Unterklasse von <code>Game</code> sein (<code>class Spiel extends Game</code>).
# <code>Spiel</code> muss Unterklasse von <code>Game</code> sein (<code>class Spiel extends Game</code>).
# Der Konstruktor von <code>Game</code> muss mit <code>super</code> aufgerufen werden. Er erwartet die Breite und Höhe des Programmfensters, sowie einen String, der als Titel angezeigt wird (<code>super(906, 438, "Hehomon");</code>).
# Der Konstruktor von <code>Game</code> muss mit <code>super</code> aufgerufen werden. Er erwartet die Breite und Höhe des Programmfensters, sowie einen String, der als Titel angezeigt wird (<code>super(960, 642, "Hehomon");</code>).
# Die Methode <code>tasteReagieren( int pTastencode )</code> muss ''überschrieben'' werden (<code>@Override public void tasteReagieren( int pTastencode ) {}</code>).
# Die Methode <code>tasteReagieren( int pTastencode )</code> muss ''überschrieben'' werden (<code>@Override public void tasteReagieren( int pTastencode ) {}</code>).
# Ein Objekt von <code>Arena</code> muss erstellt werden, und mit <code>wurzel.add( Knoten pKnoten )</code> an die Wurzel des Spiels angehängt werden. Die Arena soll in einer Objektvariablen <code>view</code> abgespeichert werden.
# Ein Objekt von <code>Arena</code> muss erstellt werden, und mit <code>wurzel.add( Knoten pKnoten )</code> an die Wurzel des Spiels angehängt werden. Die Arena soll in einer Objektvariablen <code>view</code> abgespeichert werden.
Zeile 26: Zeile 26:
::3::<span class="tab"></span>private Arena view;::// Objektvariable
::3::<span class="tab"></span>private Arena view;::// Objektvariable
::4::<span class="tab"></span>public Spiel() {::// Konstruktor von Spiel
::4::<span class="tab"></span>public Spiel() {::// Konstruktor von Spiel
::5::<span class="tabtab"></span>super(906, 438, "Hehomon");::// Konstruktor von Game aufrufen
::5::<span class="tabtab"></span>super(960, 642, "Hehomon");::// Konstruktor von Game aufrufen
::6::<span class="tabtab"></span>view = new Arena();::// Arena-Objekt erstellen
::6::<span class="tabtab"></span>view = new Arena();::// Arena-Objekt erstellen
::7::<span class="tabtab"></span>wurzel.add(view);::// Arena der Wurzel anhängen
::7::<span class="tabtab"></span>wurzel.add(view);::// Arena der Wurzel anhängen
Zeile 45: Zeile 45:


public Spiel() {
public Spiel() {
super(906, 438, "Hehomon");
super(960, 642, "Hehomon");
view = new Arena();
view = new Arena();
wurzel.add(view);
wurzel.add(view);

Version vom 3. März 2020, 11:02 Uhr

Um die Arena anzuzeigen, müssen wir noch ein Fenster erstellen, dass die Wurzel des Spiels enthält, an die wir den Arena-Knoten anhängen können.

EA Tree Hehomon 1.png

Die Spielsteuerung

Die Spielsteuerung, oder einfach „das Spiel“, ist die Hauptklasse, die für den Start zuständig ist. Hier nimmt uns die Engine-Alpha eine Menge Arbeit ab. Dazu muss unsere Spiel Klasse von der Oberklasse Game aus der Engine erben und einige Vorgaben erfüllen:

  1. Die Klassen der Engine-Alpha müssen importiert werden (import ea.*;).
  2. Spiel muss Unterklasse von Game sein (class Spiel extends Game).
  3. Der Konstruktor von Game muss mit super aufgerufen werden. Er erwartet die Breite und Höhe des Programmfensters, sowie einen String, der als Titel angezeigt wird (super(960, 642, "Hehomon");).
  4. Die Methode tasteReagieren( int pTastencode ) muss überschrieben werden (@Override public void tasteReagieren( int pTastencode ) {}).
  5. Ein Objekt von Arena muss erstellt werden, und mit wurzel.add( Knoten pKnoten ) an die Wurzel des Spiels angehängt werden. Die Arena soll in einer Objektvariablen view abgespeichert werden.
EA spiel klasse 1.png
Icon Heft.png
Arbeitsauftrag

Erstellt die Klasse Spiel nach den Vorgaben oben.

Lösungshilfe

Baut die Klasse zusammen, indem ihr die Quelltexte und Kommentare den passenden Zeilennummern zuordnet.


1 import ea.*; // Import der Engine-Alpha
2 public class Spiel extends Game { // Klassenkopf mit Vererbung
3 private Arena view; // Objektvariable
4 public Spiel() { // Konstruktor von Spiel
5 super(960, 642, "Hehomon"); // Konstruktor von Game aufrufen
6 view = new Arena(); // Arena-Objekt erstellen
7 wurzel.add(view); // Arena der Wurzel anhängen
8 } // Ende Konstruktor
9 @Override // Methode überschreiben
10 public void tasteReagieren( int pTastencode ) { //Methodenkopf tasteReagieren
11 } // Ende tasteReagieren
12 } // Ende Klasse Spiel
Lösung
import ea.*;

public class Spiel extends Game {
	
	private Arena view;

	public Spiel() {
		super(960, 642, "Hehomon");
		view = new Arena();
		wurzel.add(view);
	}
    
    @Override
    public void tasteReagieren(int tastencode) {
    }
}

Erstellt nun in BlueJ ein neues Objekt von Spiel und beobachtet, was passiert.