Package pi.physics
Class NullHandler
java.lang.Object
pi.physics.NullHandler
- All Implemented Interfaces:
pi.physics.PhysicsHandler
Eine Steuerungsklasse für Operationen an
Actor-Objekten, die an
keiner Szene angehängt sind. Die Klasse führt alle Operationen rein numerisch
durch und gibt Fehler aus, wenn Operationen ausgeführt werden, die nur mit
einer Verbindung zur Physics-Engine funktionieren können.-
Constructor Summary
Constructors -
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 force, Vector globalLocation) voidapplyImpulse(Vector impulse, 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.booleanEin Objekt ohne Physik enthält keinen Punkt.doubledensity()voiddensity(double density) voidfixtures(Supplier<List<FixtureData>> shapes) 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.pi.physics.PhysicsDataGibt die Proxy-Daten des Actors aus.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.
-
Constructor Details
-
NullHandler
public NullHandler(pi.physics.PhysicsData physicsData)
-
-
Method Details
-
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:
v- 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
Ein Objekt ohne Physik enthält keinen Punkt.- Specified by:
containsin interfacepi.physics.PhysicsHandler- Parameters:
p- Ein Punkt auf der Zeichenebene.- Returns:
- false
-
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
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
- Specified by:
rotationin interfacepi.physics.PhysicsHandler
-
density
- Specified by:
densityin interfacepi.physics.PhysicsHandler
-
density
- Specified by:
densityin interfacepi.physics.PhysicsHandler
-
gravityScale
- Specified by:
gravityScalein interfacepi.physics.PhysicsHandler
-
gravityScale
- Specified by:
gravityScalein interfacepi.physics.PhysicsHandler
-
friction
- Specified by:
frictionin interfacepi.physics.PhysicsHandler
-
friction
- Specified by:
frictionin interfacepi.physics.PhysicsHandler
-
restitution
- Specified by:
restitutionin interfacepi.physics.PhysicsHandler
-
restitution
- Specified by:
restitutionin interfacepi.physics.PhysicsHandler
-
linearDamping
- Specified by:
linearDampingin interfacepi.physics.PhysicsHandler
-
linearDamping
- Specified by:
linearDampingin interfacepi.physics.PhysicsHandler
-
angularDamping
- Specified by:
angularDampingin interfacepi.physics.PhysicsHandler
-
angularDamping
- Specified by:
angularDampingin interfacepi.physics.PhysicsHandler
-
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:
impulse- Ein Impuls (in [Ns]).globalLocation- TODO
-
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.
-
body
Wird intern zum Debuggen benutzt. Gibt den korrespondierenden Body aus.- Specified by:
bodyin interfacepi.physics.PhysicsHandler- Returns:
- Der korrespondierende Body.
-
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
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
Gibt die aktuelle Drehgeschwindigkeit aus.- Specified by:
angularVelocityin interfacepi.physics.PhysicsHandler- Returns:
- Die aktuelle Drehgeschwindigkeit.
-
rotationLocked
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:
shapes- Die neuen Fixtures als Supplier, der die Liste der Fixtures ausgibt.
-
physicsData
Gibt die Proxy-Daten des Actors aus.- Specified by:
physicsDatain interfacepi.physics.PhysicsHandler- Returns:
- der gegenwärtige physikalische Zustand des Raum-Objekts in Proxy-Daten.
-
applyMountCallbacks
public void applyMountCallbacks(pi.physics.PhysicsHandler otherHandler) - Specified by:
applyMountCallbacksin interfacepi.physics.PhysicsHandler
-
collisions
- Specified by:
collisionsin interfacepi.physics.PhysicsHandler
-
awake
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.
-