|
Pacman 3D .:. www.stormzone.de/uni/pacman3d/ | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--pacman3d.labyrinth.items.Item
Title: Pacman 3D - Nicht wirklich ;)
Description:
Die Itembasisklasse für bewegliche und/oder kleine Objekte in Labyrinthzellen, die mit Pacmans interagieren können und über eigene Logik für die 3D-Darstellung verfügen.
Items sind Objekte die „kleiner“ als Zellen sind wie Vitaminpille, Werkzeugkoffer, Erste-Hilfe-Kasten, Lichtschalter, Tretmine, Tarnkleidung. Sie liegen in Zellen. Entsprechend kann eine Zelle beispielsweise eine Vitaminpille und einen Lichtschalter enthalten. Items sind also die zentralen Interaktionselemente zwischen Pacmans und Labyrinth im Spiel.
Items bestehen aus einem Verhalten und einer Optik. Beim Verhalten kann es sich beispielsweise um das Erhöhen des Pacmanpunktestands handeln, bei der Optik um die Visualisierung von Vitaminpillen oder Waffen, visualisiert durch Java3D-Objekte. Diese Objekte werden von der Item-Klasse und ihren Ableitungen eigenständig verwaltet.
Copyright: Copyright (c) 2001
Field Summary | |
static Color3f |
black
Grundlegende Farbe um Appearance bzw. |
protected ID |
m_oID
Die eindeutige Bezeichnung dieser Item-Instanz |
protected Labyrinth |
m_oLabyrinth
eine Instanz auf das Labyrinth, in dem sich das Item befindet |
static Color3f |
white
Grundlegende Farbe um Appearance bzw. |
Constructor Summary | |
Item()
Diese Konstruktormethode initialisiert ein neues Itemobjekt mit Standardwerten |
Method Summary | |
Object |
clone()
klont das Objekt und liefert es zurück |
boolean |
equals(Object obj)
vergleicht die Zelle mit dem angegebenen Objekt und liefert true bei Gleichheit, sonst falsch. |
void |
execute(Pacman oPacman)
Wird aufgerufen, um Funktionalität und Semantik des mit der Instanz repräsentierten Gegenstandes auszuführen. |
ID |
getID()
Gibt die eindeutige Bezeichnung des Items zurueck. |
void |
getMessage(Message oMessage)
Nimmt eine Nachricht entgegen, die anschliessend ausgewertet wird. |
Node |
getNode()
Liefert den Java3D-Node zurück, der den Gegenstand darstellt, der von der Item-Instanz repräsentiert wird. |
boolean |
isCoreItem()
returns whether or not this item is a core item. |
boolean |
isTakable()
Liefert zurück, ob der mit der Instanz beschriebene Spielgegenstand "aufgenommen" - also benutzt - werden kann (to take!). |
boolean |
isVisible()
returns visibility status of this item. |
void |
loadFromDOM(Element oElement)
Nimmt ein XML Element entgegen, und deserialisiert den Zustand des eigenen Objektes. |
Element |
saveToDOM(Document oDoc)
Serialisiert den Zustand der Instanz in ein XML-Element. |
void |
setID(ID oID)
Setzt die eindeutige Bezeichnung des Items. |
void |
setLabyrinth(Labyrinth oLabyrinth)
setzt einen Zeiger auf das Labyrinth, in dem sich das Item befindet (dieses Konstrukt ist nötig geworden, um eine Kommunikation zwischen Labyrinth und Items zu ermöglichen. |
void |
setVisibility(boolean bVisibility)
sets the visibility status of this item. |
void |
take(Pacman oPacman)
"nimmt den Gegenstand auf" und führt je nach Implementierung der abgeleiteten Itemklasse zu einem internen Statuswechsel. |
Methods inherited from class java.lang.Object |
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static Color3f black
public static Color3f white
protected ID m_oID
protected Labyrinth m_oLabyrinth
Constructor Detail |
public Item()
Method Detail |
public boolean isTakable()
Die Methode sollte vor dem eigentlichen Aufruf von take() aufgerufen werden
Zudem kann ein item-Objekt ein wechselthaftes Verhalten aufweisen und nach bestimmten Kriterien unterschieden mal das "aufnehmen" zulassen und zu anderen Zeitpunkten bzw. Zuständen nicht.
public ID getID()
getID
in interface Identifiable
ID
,
Identifiable
public void setID(ID oID)
ID
,
Identifiable
public void take(Pacman oPacman)
"nimmt den Gegenstand auf" und führt je nach Implementierung der abgeleiteten Itemklasse zu einem internen Statuswechsel. Manche Items sind beispielsweise nach der Aufnahme durch Pacmans unsichtbar und können nicht mehr aufgenommen werden.
oPacman
- die Instanz eines Pacman-Objekts. Der Parameter wird zur
potentiellen Zwei-Wege-Kommunikation mit dem Objekt verwendet.public void execute(Pacman oPacman)
Wird aufgerufen, um Funktionalität und Semantik des mit der Instanz repräsentierten Gegenstandes auszuführen. Dies läßt erkennen, dass items nicht benutzt werden sondern aktiv und autark arbeiten sollen. Mit diesem Ansatz bietet sich ein weiteres Feld an Erweiterungsmöglichkeiten, als wenn die Item-Klassen nur passive Codefragmente wären.
Die Nutzung dieser Klasse gestaltet sich dann so, dass ein Pacman von der Zelle eine Reihe von darin enthaltenen Items erhält (oder auch keine bei einer leergeräumten Zelle). Mit der Methode isTakable() prüft Pacman, ob das jeweilige Item aufnehmbar ist und nimmt es dann auch mit take() auf. Sofort oder zu einem späteren Zeitpunkt kann mit dieser Methode execute() die Ausführung der Semantik des Items begonnen werden, die ihrerseits primär auf das übergebene Pacman-Objekt einwirken, aber auch die Umgebung und sich selbst beeinflussen können (Licht, etc.)
oPacman
- die Instanz eines Pacman-Objekts. Der Parameter wird zur
potentiellen Zwei-Wege-Kommunikation mit dem Objekt verwendet.take(pacman3d.pacman.Pacman)
,
isTakable()
public Node getNode()
public Object clone()
clone
in class Object
public boolean equals(Object obj)
equals
in class Object
obj
- das mit sich selbst zu vergleichende Objektpublic void loadFromDOM(Element oElement)
loadFromDOM
in interface XMLSerializeable
oElement
- Das XML-Element, unterhalb dessen ein Objekt
seinen Zustand speichern darf.public Element saveToDOM(Document oDoc)
saveToDOM
in interface XMLSerializeable
oDoc
- das Document, in das die Daten eingefügt werden sollen
(wird für das Erzeugen von Elementen nach dem Factory-Konzept benötigt)public void getMessage(Message oMessage)
getMessage
in interface MessageListener
oMessage
- die entgegengenommene NachrichtMessage
public boolean isVisible()
public void setVisibility(boolean bVisibility)
public boolean isCoreItem()
public void setLabyrinth(Labyrinth oLabyrinth)
oLabyrinth
- die zu speichernde Labyrinth-Instanz
|
Pacman 3D .:. www.stormzone.de/uni/pacman3d/ | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |