public class ActionFigur extends Raum
Eine Actionfigur ist eine besondere Figur. Diese hat verschiedene Zustaende und kann verschiedene Aktionen durchführen. Das bedeutet: Jeder Zustand und jede Aktion werden von einem Figur
-Objekt dargestellt.
Die Figur des aktuellen Zustandes wird normalerweise dargestellt.
Wird ein Aktion ausgefuehrt, so wird die dazugehoerige Figur einmal durchanimiert. Anschliessend kehrt die Figur in ihren Zustand zurueck.
WICHTIG:
Damit eine Actionfigur immer ordnungsgemaess funktioniert (Spiegelungen), sollten alle Figuren die selben Masse (“Pixel”-Hoehe/-Breite) haben.
Es muessen nicht alle Felder ausgefuellt sein, damit Kollisionstests etc. immer funktionieren. Es sei denn, die rechenintensive Arbeit wurde durch die Klasse Game
ausgeschaltet (Methode rechenintensiveArbeitSetzen(…)
).
farbzyklus, position, roh
Constructor and Description |
---|
ActionFigur(Figur zustand1,
java.lang.String zustandsName1)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
aktionSetzen(java.lang.String name)
Versetzt diese Actionfigur in eine bestimmte Aktion.
|
Figur |
aktuelleFigur()
Gibt die aktuelle Figur zurueck.
|
java.lang.String |
aktuellesVerhalten()
Gibt den aktuellen Zustand dieser Action-Figur als
String aus. |
BoundingRechteck |
dimension()
Methode zum Beschreiben der rechteckigen Flaeche, die dieses Objekt einnimmt.
|
void |
einfaerben(Farbe f)
Faerbt alle Figuren dieser Action-Figur in eine Farbe ein.
|
void |
einfaerben(java.lang.String farbe)
Faerbt alle Figuren dieser Action-Figur in eine Farbe ein.
|
Collider |
erzeugeCollider()
Erzeugt einen neuen Collider für dieses Objekt.
|
void |
faktorSetzen(int faktor)
Setzt den Groessenfaktor ALLLER anliegender Einzel-Figuren dieser ActionFigur neu.
|
BoundingRechteck[] |
flaechen()
Berechnet exakt die derzeitig von dieser Figur okkupierten Flaechen auf der Zeichenebene.
|
void |
hatAktionSetzen(boolean action)
Setzt, ob diese Figur zur Zeit eine Aktion hat.
|
void |
neueAktion(Figur aktionsFigur,
java.lang.String name)
Meldet eine neue Aktion fuer diese Figur an.
|
void |
neuerZustand(Figur zustandFigur,
java.lang.String name)
Meldet einen neuen Zustand fuer diese Figur an.
|
void |
spiegelXSetzen(boolean spiegel)
Spiegelt ALLE Figuren der Zustaende und Aktionen dieser Figur an der X-Achse.
|
void |
spiegelYSetzen(boolean spiegel)
Spiegelt ALLE Figuren der Zustaende und Aktionen dieser Figur an der Y-Achse.
|
void |
verschieben(Vektor v)
Verschiebt die Actionfigur um eine bestimmte Verschiebung.
|
boolean |
vollfuehrtAktion()
Gibt zurueck, ob diese Action-Figur gerade eine Aktion ausfuehrt.
|
void |
zeichnen(java.awt.Graphics2D g,
BoundingRechteck r)
Zeichnet das Objekt.
|
void |
zustandSetzen(java.lang.String name)
Versetzt diese Actionfigur in einen bestimmten Zustand.
|
afterRender, aktivMachen, aktuellerCollider, beeinflussbarSetzen, beforeRender, beinhaltet, bewegen, bewegen, boundsUebernehmen, colliderSetzen, compareTo, drehenAbsolut, drehenRelativ, einfluesseZuruecksetzen, erzeugeLazyCollider, fallReagierbarAnmelden, geschwindigkeitHinzunehmen, geschwindigkeitSetzen, getForce, getMasse, gibDrehung, halbesAlpha, heavyComputingSetzen, hoehenUnterschied, impulsHinzunehmen, inFlaeche, istBeeinflussbar, kraftAnwenden, kraftSetzen, kritischeTiefeSetzen, leuchterAbmelden, leuchterAnmelden, loeschen, luftwiderstandskoeffizient, luftwiderstandskoeffizientSetzen, masseSetzen, mittelPunkt, mittelpunktSetzen, mittelpunktSetzen, neutralMachen, newtonschMachen, passivMachen, position, positionSetzen, positionSetzen, positionX, positionY, problem, schneidet, schwerkraftAktivSetzen, schwerkraftSetzen, setzeMeterProPixel, sichtbar, sichtbarSetzen, sprung, stehReagierbarAnmelden, steht, stehtAuf, verschieben, zeichnenBasic, zentrum, zIndex, zuFarbeKonvertieren
public ActionFigur(Figur zustand1, java.lang.String zustandsName1)
Konstruktor. Erstellt eine Actionfigur
zustand1
- Der erste Zustand der Figur. Weitere Zustaende koennen ueber die Methode neuerZustand
angemeldet werden.zustandsName1
- Der name des ersten Zustandes. Weitere Zustaende koennen ueber die Methode neuerZustand
angemeldet werden.public void neuerZustand(Figur zustandFigur, java.lang.String name)
Meldet einen neuen Zustand fuer diese Figur an.
zustandFigur
- Die Figur, die diesen Zustand beschreibt.name
- Der Name, unter dem dieser Zustand aufgerufen wird.neueAktion(Figur, String)
public void neueAktion(Figur aktionsFigur, java.lang.String name)
Meldet eine neue Aktion fuer diese Figur an.
aktionsFigur
- Die Figur, die diese Aktion beschreibt.name
- Der Name, unter dem diese Aktion aufgerufen wird.neuerZustand(Figur, String)
public void zustandSetzen(java.lang.String name)
Versetzt diese Actionfigur in einen bestimmten Zustand.
Vollfuehrt die Figur jedoch gerade eine Aktion, so ist der neue Zustand erst danach sichtbar.
name
- Der Name des Zustandes, in den die Figur versetzt werden soll. Dies ist der Name, der beim Anmelden des Zustandes mitgegeben wurde.aktionSetzen(String)
public void aktionSetzen(java.lang.String name)
Versetzt diese Actionfigur in eine bestimmte Aktion.
name
- Der Name der Aktion, die die Figur ausfuehren soll. Dies ist der Name, der beim Anmelden der Aktion mitgegeben wurde.zustandSetzen(String)
public void hatAktionSetzen(boolean action)
Setzt, ob diese Figur zur Zeit eine Aktion hat.
Diese Methode sollte nicht von aussen aktiviert werden. Hierfuer gibt es:
zustandSetzen(String)
und aktionSetzen(String)
.
action
- Ob diese Figur gerade eine Aktion ausfuehrt.public Figur aktuelleFigur()
Gibt die aktuelle Figur zurueck.
public java.lang.String aktuellesVerhalten()
Gibt den aktuellen Zustand dieser Action-Figur als String
aus.
public void spiegelXSetzen(boolean spiegel)
Spiegelt ALLE Figuren der Zustaende und Aktionen dieser Figur an der X-Achse.
ACHTUNG!!!!
Damit diese Methode nicht zu ungewollten Missverstaendnissen fuehrt, sollte folgendes beachtet werden:
Saemtliche einzelnen Figuren, die an dieser Action-Figur angemeldet sind, sollten dieselben Masse haben. Sie sollten also alle aus derselben Anzahl an “Unterquadraten” (gleiche hoehe * breite) bestehen!
Ansonsten wuerde ein ungewolltes “Verschieben” der verschiedenen Action-Figur-Verhalten passieren.
spiegel
- Ob alle angelegten Figuren (der Zustaende und Aktionen) an der X-Achse gespiegelt werden sollen.Figur.spiegelXSetzen(boolean)
public void spiegelYSetzen(boolean spiegel)
Spiegelt ALLE Figuren der Zustaende und Aktionen dieser Figur an der Y-Achse.
ACHTUNG!!!!
Damit diese Methode nicht zu ungewollten Missverstaendnissen fuehrt, sollte folgendes beachtet werden:
Saemtliche einzelnen Figuren, die an dieser Action-Figur angemeldet sind, sollten dieselben Masse haben. Sie sollten also alle aus derselben Anzahl an “Unterquadraten” (gleiche hoehe * breite) bestehen!
Ansonsten wuerde ein ungewolltes “Verschieben” der verschiedenen Action-Figur-Verhalten passieren.
spiegel
- Ob alle angelegten Figuren (der Zustaende und Aktionen) an der Y-Achse gespiegelt werden sollen.Figur.spiegelYSetzen(boolean)
public void einfaerben(Farbe f)
Faerbt alle Figuren dieser Action-Figur in eine Farbe ein.
f
- Die Farbe, die alle Felder aller Figuren annehmen werden.Figur.einfaerben(Farbe)
,
einfaerben(String)
public void einfaerben(java.lang.String farbe)
Faerbt alle Figuren dieser Action-Figur in eine Farbe ein.
farbe
- Die Farbe, die alle Felder aller Figuren annehmen werden. Als Standardfarben-String.Figur.einfaerben(Farbe)
,
einfaerben(Farbe)
public void faktorSetzen(int faktor)
Setzt den Groessenfaktor ALLLER anliegender Einzel-Figuren dieser ActionFigur neu.
Sowohl die einzelnen Zustaende als auch die einzelnen Aktionen.
faktor
- Der neue GroessenfaktorFigur.faktorSetzen(int)
public boolean vollfuehrtAktion()
Gibt zurueck, ob diese Action-Figur gerade eine Aktion ausfuehrt.
Eine Aktion ausfuehren ist ein sehr kurzlebiger Zustand, daher ist dies nie dauerhaft gegeben, es sei denn, der Befehl hierzu wird dauerhaft durchgegeben.
true
, wenn diese Action-Figur gerade eine Aktion ausfuehrt, andernfalls false
.public void verschieben(Vektor v)
Verschiebt die Actionfigur um eine bestimmte Verschiebung.
verschieben
in class Raum
v
- Die Verschiebung als Objekt der Klasse Vektor
Vektor
,
Raum.verschieben(int, int)
public void zeichnen(java.awt.Graphics2D g, BoundingRechteck r)
Zeichnet das Objekt.
public BoundingRechteck dimension()
Raum
Methode zum Beschreiben der rechteckigen Flaeche, die dieses Objekt einnimmt.
Diese Methode wird zentral fuer die Trefferkollisionen innerhalb der Engine benutzt und gehoert zu den wichtigsten Methoden der Klasse und der Engine.
dimension
in class Raum
Raum.dimension()
public BoundingRechteck[] flaechen()
Berechnet exakt die derzeitig von dieser Figur okkupierten Flaechen auf der Zeichenebene.
public Collider erzeugeCollider()
Erzeugt einen neuen Collider für dieses Objekt. Diese Methode approximiert für das Objekt der jeweils implementierenden Raum
-Klasse einen möglichst “guten” Collider; also einen solchen, der das tatsächliche Objekt möglichst genau umfängt, aber auch möglichst wenig Rechenarbeit beansprucht.
erzeugeCollider
in class Raum
Raum.colliderSetzen(Collider)