Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Die Klasse Geist
2
Graphische Planung Der Geist besteht im einfachsten Fall aus einem Rechteck mit aufgesetztem Halbkreis. Den Halbkreis können wir als Kreissektor mit Anfangswinkel 0° und Gesamtwinkel 180° zeichnen. Die Koordinaten müssen wir durch Ausprobieren so wählen, dass der Geist in ein Levelfeld (bei uns also in 100*100 Leinwandpunkte) hineinpasst.
3
public class Geist { private Kreissektor kopf; private Rechteck rumpf; public Geist () kopf = new Kreissektor (); kopf.setzeAnfangswinkel (0); kopf.setzeGesamtwinkel (180); kopf.setzeFarbe ("pink"); kopf.setzeRadius (30); kopf.setzePosition (20, 20); rumpf = new Rechteck (); rumpf.setzeBreite (60); rumpf.setzeHoehe (50); rumpf.setzeFarbe ("pink"); rumpf.setzePosition (20, 50); } Die Referenzattribute kopf und rumpf werden deklariert, im Konstruktor erzeugt sowie passend positioniert und gefärbt.
4
Kritik am ersten Entwurf
Der Konstruktor erzeugt nur einen pinken Geist. Im Pacmanspiel gibt es allerdings vier verschiedenfarbige Geister, die an verschiedenen Stellen im Level stehen. Wir müssen darum einerseits die Geister bewegen können. Andererseits müssen wir beim Aufrufen des Konstruktors bereits festlegen können, welche Farbe der Geist haben und wo er das Spiel beginnen soll.
5
Neue Attribute des Geists
private int positionX; private int positionY; private boolean verwundbar; private String gesundeFarbe; private String krankeFarbe; Die ersten beiden Attribute verwalten die Position des Geists im Level. Das dritte gibt an, ob der Geist gerade verwundbar ist. Die letzten beiden nennen die Farbe des Geists im unverwundbaren und im verwundbaren Zustand.
6
Die Bewegung des Geists
public void bewegeNach (int x, int y) { rumpf.setzePosition (x * , y * ); kopf.setzePosition (x * , y * ); positionX = x; positionY = y; } Die Levelkoordinaten des Zielfeldes müssen wir umrechnen in passende Leinwandkoordinaten für Rumpf und Kopf. Außerdem muss sich der Geist in seinen Attributen merken, auf welchem Levelfeld er steht.
7
public void werdeVerwundbar ()
{ verwundbar = true; kopf.setzeFarbe (krankeFarbe); rumpf.setzeFarbe (krankeFarbe); } public void werdeUnverwundbar () verwundbar = false; kopf.setzeFarbe (gesundeFarbe); rumpf.setzeFarbe (gesundeFarbe); Die beiden Methoden sagen dem Geist, dass seine Verwundbarkeit sich ändert, und ändern die Farben von Kopf und Rumpf entsprechend.
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.