Package pi.physics
Class BodyHandler
java.lang.Object
pi.physics.BodyHandler
- All Implemented Interfaces:
pi.physics.PhysicsHandler
Ein
Body-Handler kümmert sich um die physikalische
Darstellung eines Actor-Objekts.
Er übernimmt zwei wesentliche Aufgaben:
-
Method Summary
Modifier and TypeMethodDescriptionanchor()Gibt die aktuelle Anker-Position des Ziel-Objekts an.doublevoidangularDamping(double damping) doubleGibt die aktuelle Drehgeschwindigkeit aus.voidangularVelocity(double rotationsPerSecond) Setzt die Drehgeschwindigkeit für das Handler-Objekt.voidapplyForce(Vector force) Übt eine Kraft auf das Ziel-Objekt (im Massenschwerpunkt) aus (sofern möglich).voidapplyForce(Vector forceInN, Vector globalLocation) voidapplyImpulse(Vector impulseInNs, Vector globalLocation) Wirkt einen Impuls auf einem Welt-Point.voidapplyMountCallbacks(pi.physics.PhysicsHandler otherHandler) voidapplyRotationImpulse(double rotationImpulse) Wirkt einen Drehimpuls auf das Ziel-Objekt.voidapplyTorque(double torque) Wirkt einen Drehmoment auf das Ziel-Objekt.voidawake(boolean value) Legt den Schlafzustand des Körpers fest.de.pirckheimer_gymnasium.jbox2d.dynamics.Bodybody()Wird intern zum Debuggen benutzt.bodyType()voidMacht ein Type-Update für diesen Handler.center()Gibt den Gewichtsmittelpunkt diesesActor-Objekts aus.booleanGibt an, ob ein bestimmter Punkt auf der Zeichenebene innerhalb des Ziel-Objekts liegt.doubledensity()voiddensity(double density) voidfixtures(Supplier<List<FixtureData>> fixtures) Entfernt alle Fixtures/Collider am Actor und setzt alle Fixturs für dieses Objekt neu.doublefriction()voidfriction(double friction) doublevoidgravityScale(double factor) booleanTestet, ob das Objekt unter sich festen Boden hat.booleandoublevoidlinearDamping(double damping) doublemass()Gibt die Masse des Ziel-Objekts aus.voidVerschiebt das Ziel-Objekt um einen spezifischen Wert auf der Zeichenebene.voidSetzt die Wirkung aller physikalischer Bewegungen (Geschwindigkeit und Drehung) zurück.doublevoidrestitution(double restitution) voidrotateBy(double degree) Rotiert das Ziel-Objekt um einen festen Winkel.doublerotation()Gibt die aktuelle Rotation des Ziel-Objekts in Grad an.voidrotation(double degree) voidrotationLocked(boolean locked) Setzt, ob die Rotation blockiert sein soll.velocity()Gibt die aktuelle Geschwindigkeit aus.voidSetzt die Geschwindigkeit für das Handler-Objekt.Gibt den WorldHandler aus, der die Welt handelt, in der sich der Klient befindet.
-
Method Details
-
body
public de.pirckheimer_gymnasium.jbox2d.dynamics.Body body()Wird intern zum Debuggen benutzt. Gibt den korrespondierenden Body aus.- Specified by:
bodyin interfacepi.physics.PhysicsHandler- Returns:
- Der korrespondierende Body.
-
moveBy
Verschiebt das Ziel-Objekt um einen spezifischen Wert auf der Zeichenebene. Die Ausführung hat erst (ggf.) im kommenden Frame einfluss auf die Physics und ändert keine physikalischen Eigenschaften des Ziel-Objekts (außer dessen Ort).- Specified by:
moveByin interfacepi.physics.PhysicsHandler- Parameters:
meters- Ein Vector, um den das Ziel-Objekt verschoben werden soll. Dies ändert seine Position, jedoch sonst keine weiteren Eigenschaften.
-
center
Gibt den Gewichtsmittelpunkt diesesActor-Objekts aus.- Specified by:
centerin interfacepi.physics.PhysicsHandler- Returns:
- der aktuelle Gewichtsmittelpunkt des Ziel-Objekts als Point auf der Zeichenebene.
-
contains
Gibt an, ob ein bestimmter Punkt auf der Zeichenebene innerhalb des Ziel-Objekts liegt.- Specified by:
containsin interfacepi.physics.PhysicsHandler- Parameters:
vector- Ein Punkt auf der Zeichenebene.- Returns:
true, wenn der übergebene Punkt innerhalb des Ziel-Objekts liegt, sonstfalse. Das Ergebnis kann (abhängig von der implementierenden Klasse) verschieden sicher richtige Ergebnisse liefern.
-
anchor
Gibt die aktuelle Anker-Position des Ziel-Objekts an.- Specified by:
anchorin interfacepi.physics.PhysicsHandler- Returns:
- Die aktuelle Anker-Position des Ziel-Objekts. Diese ist
bei Erstellung des Objekts zunächst immer
(0|0)und wird mit Rotation und Verschiebung verändert.
-
rotation
public double rotation()Gibt die aktuelle Rotation des Ziel-Objekts in Grad an. Bei Erstellung einesActor-Objekts ist seine Rotation stets 0.- Specified by:
rotationin interfacepi.physics.PhysicsHandler- Returns:
- die aktuelle Rotation des Ziel-Objekts in Grad.
-
rotateBy
public void rotateBy(double degree) Rotiert das Ziel-Objekt um einen festen Winkel.- Specified by:
rotateByin interfacepi.physics.PhysicsHandler- Parameters:
degree- Der Winkel, um den das Ziel-Objekt gedreht werden soll (in Grad).- Werte > 0: Drehung gegen Uhrzeigersinn
- Werte < 0: Drehung im Uhrzeigersinn
-
rotation
public void rotation(double degree) - Specified by:
rotationin interfacepi.physics.PhysicsHandler
-
density
public void density(double density) - Specified by:
densityin interfacepi.physics.PhysicsHandler
-
density
public double density()- Specified by:
densityin interfacepi.physics.PhysicsHandler
-
gravityScale
public void gravityScale(double factor) - Specified by:
gravityScalein interfacepi.physics.PhysicsHandler
-
gravityScale
public double gravityScale()- Specified by:
gravityScalein interfacepi.physics.PhysicsHandler
-
friction
public void friction(double friction) - Specified by:
frictionin interfacepi.physics.PhysicsHandler
-
friction
public double friction()- Specified by:
frictionin interfacepi.physics.PhysicsHandler
-
restitution
public void restitution(double restitution) - Specified by:
restitutionin interfacepi.physics.PhysicsHandler
-
restitution
public double restitution()- Specified by:
restitutionin interfacepi.physics.PhysicsHandler
-
linearDamping
public void linearDamping(double damping) - Specified by:
linearDampingin interfacepi.physics.PhysicsHandler
-
linearDamping
public double linearDamping()- Specified by:
linearDampingin interfacepi.physics.PhysicsHandler
-
angularDamping
public void angularDamping(double damping) - Specified by:
angularDampingin interfacepi.physics.PhysicsHandler
-
angularDamping
public double angularDamping()- Specified by:
angularDampingin interfacepi.physics.PhysicsHandler
-
mass
public double mass()Gibt die Masse des Ziel-Objekts aus.- Specified by:
massin interfacepi.physics.PhysicsHandler- Returns:
- Die Masse des Ziel-Objekts in [kg].
-
applyForce
Übt eine Kraft auf das Ziel-Objekt (im Massenschwerpunkt) aus (sofern möglich).- Specified by:
applyForcein interfacepi.physics.PhysicsHandler- Parameters:
force- Die Kraft, die auf den Massenschwerpunkt angewandt werden soll. Nicht in [px], sondern in [N] = [m / s^2].
-
applyTorque
public void applyTorque(double torque) Wirkt einen Drehmoment auf das Ziel-Objekt.- Specified by:
applyTorquein interfacepi.physics.PhysicsHandler- Parameters:
torque- der Drehmoment, der auf das Ziel-Objekt wirken soll. In [N*m]
-
applyRotationImpulse
public void applyRotationImpulse(double rotationImpulse) Wirkt einen Drehimpuls auf das Ziel-Objekt.- Specified by:
applyRotationImpulsein interfacepi.physics.PhysicsHandler- Parameters:
rotationImpulse- der Drehimpuls, der auf das Ziel-Objekt wirken soll. in [kg*m*m/s]
-
bodyType
Macht ein Type-Update für diesen Handler.- Specified by:
bodyTypein interfacepi.physics.PhysicsHandler- Parameters:
type- Der neue Type.
-
bodyType
- Specified by:
bodyTypein interfacepi.physics.PhysicsHandler
-
applyForce
- Specified by:
applyForcein interfacepi.physics.PhysicsHandler
-
applyImpulse
Wirkt einen Impuls auf einem Welt-Point.- Specified by:
applyImpulsein interfacepi.physics.PhysicsHandler- Parameters:
impulseInNs- Ein Impuls (in [Ns]).globalLocation- TODO
-
resetMovement
public void resetMovement()Setzt die Wirkung aller physikalischer Bewegungen (Geschwindigkeit und Drehung) zurück. Hiernach ist das Objekt in Ruhe.- Specified by:
resetMovementin interfacepi.physics.PhysicsHandler
-
velocity
Setzt die Geschwindigkeit für das Handler-Objekt.- Specified by:
velocityin interfacepi.physics.PhysicsHandler- Parameters:
metersPerSecond- Setzt die Geschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
velocity
Gibt die aktuelle Geschwindigkeit aus.- Specified by:
velocityin interfacepi.physics.PhysicsHandler- Returns:
- Die aktuelle Geschwindigkeit.
-
angularVelocity
public void angularVelocity(double rotationsPerSecond) Setzt die Drehgeschwindigkeit für das Handler-Objekt.- Specified by:
angularVelocityin interfacepi.physics.PhysicsHandler- Parameters:
rotationsPerSecond- Setzt die Drehgeschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
angularVelocity
public double angularVelocity()Gibt die aktuelle Drehgeschwindigkeit aus.- Specified by:
angularVelocityin interfacepi.physics.PhysicsHandler- Returns:
- Die aktuelle Drehgeschwindigkeit.
-
rotationLocked
public void rotationLocked(boolean locked) Setzt, ob die Rotation blockiert sein soll.- Specified by:
rotationLockedin interfacepi.physics.PhysicsHandler
-
isRotationLocked
public boolean isRotationLocked()- Specified by:
isRotationLockedin interfacepi.physics.PhysicsHandler- Returns:
- Ob die Rotation des Objekts blockiert ist.
-
isGrounded
public boolean isGrounded()Testet, ob das Objekt unter sich festen Boden hat. Dies ist der Fall, wenn direkt unter dem Objekt ein passives Objekt liegt.
Diese Methode geht bei unten explizit von "unterhalb der Y-Achse" aus. Ein Objekt hat also Boden sich, wenn am "unteren" Ende seines Bodies (=höchster Y-Wert) in unmittelbarer Nähe (heuristisch getestet) ein passives Objekt anliegt.- Specified by:
isGroundedin interfacepi.physics.PhysicsHandler- Returns:
true, wenn direkt unter dem Objekt ein passives Objekt ist. Sonstfalse.
-
fixtures
Entfernt alle Fixtures/Collider am Actor und setzt alle Fixturs für dieses Objekt neu.- Specified by:
fixturesin interfacepi.physics.PhysicsHandler- Parameters:
fixtures- Die neuen Fixtures als Supplier, der die Liste der Fixtures ausgibt.
-
applyMountCallbacks
public void applyMountCallbacks(pi.physics.PhysicsHandler otherHandler) - Specified by:
applyMountCallbacksin interfacepi.physics.PhysicsHandler
-
collisions
- Specified by:
collisionsin interfacepi.physics.PhysicsHandler
-
worldHandler
Gibt den WorldHandler aus, der die Welt handelt, in der sich der Klient befindet.- Specified by:
worldHandlerin interfacepi.physics.PhysicsHandler- Returns:
- Der World-Handler, der zu diesem Physics-Handler gehört.
-
awake
public void awake(boolean value) Legt den Schlafzustand des Körpers fest. Ein schlafender Körper hat sehr geringe CPU-Kosten.Das Versetzen in den Schlafzustand setzt die Geschwindigkeit und den Impuls eines Körpers auf null.
- Specified by:
awakein interfacepi.physics.PhysicsHandler- Parameters:
value- Der Schlafzustand des Körpers.
-