public class Passivator extends PhysikClient
Ein Passivator ueberwacht und steuert ein passives Objekt in der Physik.
ziel
Constructor and Description |
---|
Passivator(Raum ziel)
Konstruktor.
|
Modifier and Type | Method and Description |
---|---|
void |
aufloesen()
Diese Methode wird immer dann aufgerufen, wenn ein Client nicht weiter benoetigt wird, und er alle seine Funktionen beenden soll, um die von ihm belegten Ressourcen freizugeben.
|
void |
beeinflussbarSetzen(boolean beeinflussbar)
Setzt, ob das Objekt ab sofort beeinflussbar sein soll.
|
boolean |
bewegen(Vektor v)
Realisiert das Bewegen
|
void |
einfluesseZuruecksetzen()
Setzt alle Einfluesse auf das Client-Objekt zurück.
|
void |
fallReagierbarAnmelden(FallReagierbar f,
int tiefe)
In dieser Methode wird der
FallReagierbar -Listener angemeldet. |
void |
geschwindigkeitHinzunehmen(Vektor geschwindigkeit)
Addiert eine Geschwindigkeit v’ zur aktuellen Geschwindigkeit v.
|
void |
geschwindigkeitSetzen(Vektor geschwindigkeit)
Setzt hart die Geschwindigkeit des Client-Objekts.
|
Vektor |
getForce() |
float |
getLuftwiderstandskoeffizient() |
float |
getMasse() |
void |
impulsHinzunehmen(Vektor impuls)
Berechnet einen neuen Impuls auf das Client-Objekt.
|
boolean |
in(BoundingRechteck r)
Prueft, ob ein BoundingRechteck sich mit dem Zielobjekt schneidet
|
boolean |
istBeeinflussbar() |
void |
kraftAnwenden(Vektor kraft,
float t_kraftuebertrag)
Wendet eine Kraft für einen bestimmten Zeitraum auf das Client-Objekt an.
|
void |
kraftSetzen(Vektor kraft)
Setzt hart die konstante Kraft, die auf das Client-Objekt wirkt.
|
void |
kritischeTiefeSetzen(int tiefe)
Diese Methode setzt die kritische Tiefe eines Aktiv-Objektes.
|
void |
luftwiderstandskoeffizientSetzen(float luftwiderstandskoeffizient)
Setzt den Luftwiderstandskoeffizienten für das Client-Objekt.
|
void |
masseSetzen(float masse)
Setzt die Masse des Clien-Objekts neu.
|
void |
schwerkraftAktivSetzen(boolean aktiv)
Diese Methode soll setzen, ob Schwerkraft aktiv ist.
|
void |
schwerkraftSetzen(int schwerkraft)
Setzt die Schwerkraft fuer dieses Objekt.
|
boolean |
sprung(int kraft)
Die ueberschriebene Sprung-Methode.
|
void |
stehReagierbarAnmelden(StehReagierbar s)
In diese Methode wird ein
StehReagierbar -Listener angemeldet. |
boolean |
steht()
Soll testen, ob das Ziel-Objekt steht.
|
void |
xVersch(int dX)
Vollfuehrt die einzelen Schritte fuer die Y-Verschiebung.
|
void |
yVersch(int dY)
Vollfuehrt die einzelnen Schritte fuer die Y-Verschiebung.
|
ziel
public Passivator(Raum ziel)
Konstruktor.
ziel
- Das zu ueberwachende Raum-Objektp
- Die Aktive Physikpublic boolean bewegen(Vektor v)
Realisiert das Bewegen
bewegen
in class PhysikClient
v
- Die Bewegung als Vektor.true
, da die Bewegung eines Passiv-Objektes immer in vollem Masse moeglich ist.public void yVersch(int dY)
Vollfuehrt die einzelnen Schritte fuer die Y-Verschiebung.
dY
- Die Y-Aenderungpublic void xVersch(int dX)
Vollfuehrt die einzelen Schritte fuer die Y-Verschiebung.
dX
- Die X-Aenderungpublic boolean in(BoundingRechteck r)
Prueft, ob ein BoundingRechteck sich mit dem Zielobjekt schneidet
r
- Das Pruef-Rechtecktrue
, wenn sich das Ziel mit dem Argument schneidet, sonst false
.public void aufloesen()
Diese Methode wird immer dann aufgerufen, wenn ein Client nicht weiter benoetigt wird, und er alle seine Funktionen beenden soll, um die von ihm belegten Ressourcen freizugeben.
aufloesen
in class PhysikClient
public boolean sprung(int kraft)
Die ueberschriebene Sprung-Methode. Da sie nicht benoetigt wird, wird hierbei eine Fehlermeldung ausgegeben. Denn es wurde ein oassives Objekt zum Sprung gebracht.
sprung
in class PhysikClient
kraft
- Die (theoretische) Sprungkraft.true
, wenn erfolgreich gesprungen wurde. In allen anderen Faellen false
.public void schwerkraftAktivSetzen(boolean aktiv)
Diese Methode soll setzen, ob Schwerkraft aktiv ist. Dies macht jedoch bei einem Passiv-Objekt keinen Sinn.
Daher wird nur eine Fehlermeldung ausgegeben.
schwerkraftAktivSetzen
in class PhysikClient
aktiv
- Ob die Schwerkraft aktiv sein soll. Ist jedoch hier absolut irrelevant.public void kritischeTiefeSetzen(int tiefe)
Diese Methode setzt die kritische Tiefe eines Aktiv-Objektes. Aber hierin wird nur eine Fehlermeldung ausgegeben, da bei dieser Klasse ein passives Objekt vorliegt, das keine kritische Falltiefe haben kann
kritischeTiefeSetzen
in class PhysikClient
tiefe
- Die Tiefe, ab der das anliegende FallReagierbar
-Interface informiert werden soll.fallReagierbarAnmelden(FallReagierbar, int)
public void fallReagierbarAnmelden(FallReagierbar f, int tiefe)
In dieser Methode wird der FallReagierbar
-Listener angemeldet.
Aber hierin wird nur eine Fehlermeldung ausgegeben, da bei dieser Klasse ein passives Objekt vorliegt, das keine kritische Falltiefe haben kann.
fallReagierbarAnmelden
in class PhysikClient
f
- Das FallReagierbar
-Objekt, das ab sofort im Grenzfall informiert wird.tiefe
- Die kritische Tiefe, ab der das Interface informiert wird.kritischeTiefeSetzen
public void stehReagierbarAnmelden(StehReagierbar s)
In diese Methode wird ein StehReagierbar
-Listener angemeldet.
Aber in dieser Klasse wird nur eine Fehlermeldung ausgegeben, da das zu ueberwachende Objekt passiv und nicht aktiv ist.
stehReagierbarAnmelden
in class PhysikClient
s
- Der theoretisch anzumeldende Listener.public boolean steht()
Soll testen, ob das Ziel-Objekt steht.
Gibt jedoch eine Fehlermeldung aus, da das Ziel-Objekt kein Aktiv-Objekt ist und damit nicht Stehen/Fallen kann.
steht
in class PhysikClient
false
, da die Eigenschaft stehen in diesem Fall nicht konsistent definierbar ist.public void schwerkraftSetzen(int schwerkraft)
Setzt die Schwerkraft fuer dieses Objekt.
Da dies jedoch bei einem passiven Objekt nicht moeglich ist, gibt es eine Fehlermeldung.
schwerkraftSetzen
in class PhysikClient
schwerkraft
- Der Wert fuer die Schwerkraft der Physik.Raum.aktivMachen()
public void impulsHinzunehmen(Vektor impuls)
Berechnet einen neuen Impuls auf das Client-Objekt.
impulsHinzunehmen
in class PhysikClient
impuls
- der neue Impuls, der auf das Objekt wirken soll. (in [kg* (m / s)])public void geschwindigkeitHinzunehmen(Vektor geschwindigkeit)
Addiert eine Geschwindigkeit v’ zur aktuellen Geschwindigkeit v. Die neue Geschwindigkeit des Client-Objekts ist damit:
v_neu = v + v’
geschwindigkeitHinzunehmen
in class PhysikClient
geschwindigkeit
- Die neue Geschwindigkeit v’, die zur aktuellen Geschwindigkeit v hinzuaddiert werden soll.(in [m / s])public float getLuftwiderstandskoeffizient()
getLuftwiderstandskoeffizient
in class PhysikClient
public boolean istBeeinflussbar()
istBeeinflussbar
in class PhysikClient
public float getMasse()
getMasse
in class PhysikClient
public Vektor getForce()
getForce
in class PhysikClient
public void luftwiderstandskoeffizientSetzen(float luftwiderstandskoeffizient)
Setzt den Luftwiderstandskoeffizienten für das Client-Objekt. Dieser bestimmt, wie intensiv der Luftwiderstand das Objekt beeinträchtigt. Je höher dieser Wert ist, desto stärker ist der Luftwiderstand. Ist er 0, gibt es keinen Luftwiderstand.
luftwiderstandskoeffizientSetzen
in class PhysikClient
luftwiderstandskoeffizient
- Der Luftwiderstandskoeffizient. Darf nicht kleiner als 0 sein!public void beeinflussbarSetzen(boolean beeinflussbar)
Setzt, ob das Objekt ab sofort beeinflussbar sein soll.
Das bedeutet:
beeinflussbarSetzen
in class PhysikClient
beeinflussbar
- ist dieser Wert true
, ist das Objekt ab sofort beeinflussbar. Sonst ist es nicht beeinflussbar.public void masseSetzen(float masse)
Setzt die Masse des Clien-Objekts neu. Das kann auch mitten im Spiel geändert werden. Die Masse bestimmt zum Beispiel, wie sich das Objekt bei Kollisionen oder einem neuen Impuls verhält.
masseSetzen
in class PhysikClient
masse
- die neue Masse des Client-Objekts.(in [kg])public void kraftSetzen(Vektor kraft)
Setzt hart die konstante Kraft, die auf das Client-Objekt wirkt. Das bedeutet, dass die vorher gegoltene Kraft gelöscht wird ohne Rücksicht auf mögliche Implikationen/Probleme.
kraftSetzen
in class PhysikClient
kraft
- Die neue Kraft, die auf das Client-Objekt wirken soll.(in [m / s^2] = [N])public void geschwindigkeitSetzen(Vektor geschwindigkeit)
Setzt hart die Geschwindigkeit des Client-Objekts. Das bedeutet, dass die vorher gegoltene Geschwindikeit gelöscht wird ohne Rücksicht auf mögliche Implikationen/Probleme.
geschwindigkeitSetzen
in class PhysikClient
geschwindigkeit
- Die neue Geschwindigkeit für das Client-Objekt. (in [m / s])public void einfluesseZuruecksetzen()
Setzt alle Einfluesse auf das Client-Objekt zurück. Dies sind:
einfluesseZuruecksetzen
in class PhysikClient
public void kraftAnwenden(Vektor kraft, float t_kraftuebertrag)
Wendet eine Kraft für einen bestimmten Zeitraum auf das Client-Objekt an. Hierdurch entsteht ein neuer Impuls auf das Objekt, der dessen Geschwindigkeit (und Richtung) ändern kann.
Wichtig: Dies ist eine Heuristik: Die Dauer sein genügend klein und die Kraft konstant, solange sie wirkt. Die rein physikalische Rechnung wäre wesentlich rechenintensiver.
kraftAnwenden
in class PhysikClient
kraft
- Die Kraft, die auf das Objekt anliegen soll. (in [kg* (m / s^2)] = [N])t_kraftuebertrag
- Die Dauer, für die die Kraft auf das Objekt wirkt. (in [s)])