Die Klasse Geist.

Slides:



Advertisements
Ähnliche Präsentationen
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Advertisements

Definition von Klassen in Java
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Kapselung , toString , equals , Java API
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Grundkonzepte Java - Klassendefinition
Ham EST Das Schwein Schmatz.. Fressen Beginnen wir.... mit einer Geschichte:
1.2 Attribute und Methoden Aufbau einer Java-Klasse:
Klassendefinitionen in Java
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
1.3 Klassen und Beziehungen
1.3 Klassen und Beziehungen
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Die allgemeine Liste.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
Venusspiegel und Marsschild
JAVA lernen: Methoden.
Zwei Denkansätze zur Klasse Schlange
Aufgaben zu Rückgabewerten
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Der Abschluss einer Schlange
Wiederholungen mit Zähler
Bewegung des Pacman.
Die Klasse Vielfrass in Java
Klassen selbst programmieren
Felder in Java.
Ein schematischer Kirschbaum in Java
Einführung in die Programmierung mit Java
Die Struktur einer Java-Klasse
Grundkurs Informatik 11-13
November 18 Informatik Kurse
4. Modellieren und Diagrammarten
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Objektorientiertes Modellieren und Programmieren mit Java
2. Vererbung und Kapselung
Definition Felder Konstruktor Methoden Beispiel
9. Vererbung und Polymorphie
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

Die Klasse Geist

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.

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.

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.

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.

Die Bewegung des Geists public void bewegeNach (int x, int y) { rumpf.setzePosition (x * 100 - 99 + 20, y * 100 - 99 + 30); kopf.setzePosition (x * 100 - 99 + 20, y * 100 - 99); 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.

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.