Lernpfad:Hehomon/9: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Jneug (Diskussion | Beiträge) Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 7: | Zeile 7: | ||
== Die Spielsteuerung == | == 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 <code>Spiel</code> Klasse von der Oberklasse <code>Game</code> aus der Engine erben | 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 <code>Spiel</code> Klasse von der Oberklasse <code>Game</code> aus der Engine erben und einige Vorgaben erfüllen: | ||
Der Konstruktor von <code>Game</code> erwartet die Breite und Höhe des Programmfensters, sowie einen String, der als Titel angezeigt wird. | # 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>). | |||
# 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>). | |||
# 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. | |||
[[Bild:EA spiel klasse 1.png|center]] | |||
{{Aufgabe:Start|Icon=BlueJ Logo.png}} | |||
Erstellt die Klasse <code>Spiel</code> nach den Vorgaben oben. | |||
{{Aufgabe:End}} | |||
{{Lösung:Start|Lösungshilfe}} | |||
<zuordnung> | |||
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::<span class="tab"></span>private Arena view;::// Objektvariable | |||
::4::<span class="tab"></span>public Spiel() {::// Konstruktor von Spiel | |||
::5::<span class="tabtab"></span>super(960, 642, "Hehomon");::// Konstruktor von Game aufrufen | |||
::6::<span class="tabtab"></span>view = new Arena();::// Arena-Objekt erstellen | |||
::7::<span class="tabtab"></span>wurzel.add(view);::// Arena der Wurzel anhängen | |||
::8::<span class="tab"></span>} // Ende Konstruktor | |||
::9::<span class="tab"></span>@Override::// Methode überschreiben | |||
::10::<span class="tab"></span>public void tasteReagieren( int pTastencode ) {:://Methodenkopf tasteReagieren | |||
::11::<span class="tab"></span>} // Ende tasteReagieren | |||
::12::} // Ende Klasse Spiel | |||
</zuordnung> | |||
{{Lösung:End}} | |||
{{Lösung:Start}} | |||
<syntaxhighlight lang="java"> | |||
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) { | |||
} | |||
} | |||
</syntaxhighlight> | |||
{{Lösung:End}} | |||
Erstellt nun in {{BlueJ}} ein neues Objekt von <code>Spiel</code> und beobachtet, was passiert. | |||
Aktuelle Version vom 11. März 2020, 23:30 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.
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:
- Die Klassen der Engine-Alpha müssen importiert werden (
import ea.*;). Spielmuss Unterklasse vonGamesein (class Spiel extends Game).- Der Konstruktor von
Gamemuss mitsuperaufgerufen werden. Er erwartet die Breite und Höhe des Programmfensters, sowie einen String, der als Titel angezeigt wird (super(960, 642, "Hehomon");). - Die Methode
tasteReagieren( int pTastencode )muss überschrieben werden (@Override public void tasteReagieren( int pTastencode ) {}). - Ein Objekt von
Arenamuss erstellt werden, und mitwurzel.add( Knoten pKnoten )an die Wurzel des Spiels angehängt werden. Die Arena soll in einer Objektvariablenviewabgespeichert werden.
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.
