Class NullHandler
java.lang.Object
de.pirckheimer_gymnasium.engine_pi.physics.NullHandler
- All Implemented Interfaces:
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 TypeMethodDescriptionvoidapplyForce(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(PhysicsHandler otherHandler) voidapplyRotationImpulse(double rotationImpulse) Wirkt einen Drehimpuls auf das Ziel-Objekt.voidapplyTorque(double torque) Wirkt einen Drehmoment auf das Ziel-Objekt.booleanEin Objekt ohne Physik enthält keinen Punkt.doubledoubleGibt die aktuelle Drehgeschwindigkeit aus.org.jbox2d.dynamics.BodygetBody()Wird intern zum Debuggen benutzt.Gibt den Gewichtsmittelpunkt diesesActor-Objekts aus.doubledoubledoubledoubledoublegetMass()Gibt die Masse des Ziel-Objekts aus.Gibt die Proxy-Daten des Actors aus.Gibt die aktuelle Position des Ziel-Objekts an.doubledoubleGibt die aktuelle Rotation des Ziel-Objekts in Grad an.getType()Gibt die aktuelle Geschwindigkeit aus.Gibt den WorldHandler aus, der die Welt handelt, in der sich der Klient befindet.booleanTestet, ob das Objekt unter sich festen Boden hat.booleanvoidVerschiebt das Ziel-Objekt um einen spezifischen Wert auf der Zeichenebene.voidSetzt die Wirkung aller physikalischer Bewegungen (Geschwindigkeit und Drehung) zurück.voidrotateBy(double degree) Rotiert das Ziel-Objekt um einen festen Winkel.voidsetAngularDamping(double damping) voidsetAngularVelocity(double rotationsPerSecond) Setzt die Drehgeschwindigkeit für das Handler-Objekt.voidsetAwake(boolean value) Legt den Schlafzustand des Körpers fest.voidsetDensity(double density) voidsetFixtures(Supplier<List<FixtureData>> shapes) Entfernt alle Fixtures/Collider am Actor und setzt alle Fixturs für dieses Objekt neu.voidsetFriction(double friction) voidsetGravityScale(double factor) voidsetLinearDamping(double damping) voidsetRestitution(double elasticity) voidsetRotation(double degree) voidsetRotationLocked(boolean locked) Setzt, ob die Rotation blockiert sein soll.voidMacht ein Type-Update für diesen Handler.voidsetVelocity(Vector metersPerSecond) Setzt die Geschwindigkeit für das Handler-Objekt.
-
Constructor Details
-
NullHandler
-
-
Method Details
-
moveBy
Description copied from interface:PhysicsHandlerVerschiebt 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 interfacePhysicsHandler- Parameters:
v- Ein Vector, um den das Ziel-Objekt verschoben werden soll. Dies ändert seine Position, jedoch sonst keine weiteren Eigenschaften.
-
getCenter
Description copied from interface:PhysicsHandlerGibt den Gewichtsmittelpunkt diesesActor-Objekts aus.- Specified by:
getCenterin interfacePhysicsHandler- Returns:
- der aktuelle Gewichtsmittelpunkt des Ziel-Objekts als Point auf der Zeichenebene.
-
contains
Ein Objekt ohne Physik enthält keinen Punkt.- Specified by:
containsin interfacePhysicsHandler- Parameters:
p- Ein Punkt auf der Zeichenebene.- Returns:
- false
-
getPosition
Description copied from interface:PhysicsHandlerGibt die aktuelle Position des Ziel-Objekts an.- Specified by:
getPositionin interfacePhysicsHandler- Returns:
- Die aktuelle Position des Ziel-Objekts. Diese ist bei Erstellung
des Objekts zunächst immer
(0|0)und wird mit Rotation und Verschiebung verändert.
-
getRotation
public double getRotation()Description copied from interface:PhysicsHandlerGibt die aktuelle Rotation des Ziel-Objekts in Grad an. Bei Erstellung einesActor-Objekts ist seine Rotation stets 0.- Specified by:
getRotationin interfacePhysicsHandler- Returns:
- die aktuelle Rotation des Ziel-Objekts in Grad.
-
rotateBy
public void rotateBy(double degree) Description copied from interface:PhysicsHandlerRotiert das Ziel-Objekt um einen festen Winkel.- Specified by:
rotateByin interfacePhysicsHandler- Parameters:
degree- Der Winkel, um den das Ziel-Objekt gedreht werden soll (in Grad).- Werte > 0 : Drehung gegen Uhrzeigersinn
- Werte < 0 : Drehung im Uhrzeigersinn
-
setRotation
public void setRotation(double degree) - Specified by:
setRotationin interfacePhysicsHandler
-
setDensity
public void setDensity(double density) - Specified by:
setDensityin interfacePhysicsHandler
-
getDensity
public double getDensity()- Specified by:
getDensityin interfacePhysicsHandler
-
setGravityScale
public void setGravityScale(double factor) - Specified by:
setGravityScalein interfacePhysicsHandler
-
getGravityScale
public double getGravityScale()- Specified by:
getGravityScalein interfacePhysicsHandler
-
setFriction
public void setFriction(double friction) - Specified by:
setFrictionin interfacePhysicsHandler
-
getFriction
public double getFriction()- Specified by:
getFrictionin interfacePhysicsHandler
-
setRestitution
public void setRestitution(double elasticity) - Specified by:
setRestitutionin interfacePhysicsHandler
-
getRestitution
public double getRestitution()- Specified by:
getRestitutionin interfacePhysicsHandler
-
setLinearDamping
public void setLinearDamping(double damping) - Specified by:
setLinearDampingin interfacePhysicsHandler
-
getLinearDamping
public double getLinearDamping()- Specified by:
getLinearDampingin interfacePhysicsHandler
-
setAngularDamping
public void setAngularDamping(double damping) - Specified by:
setAngularDampingin interfacePhysicsHandler
-
getAngularDamping
public double getAngularDamping()- Specified by:
getAngularDampingin interfacePhysicsHandler
-
getMass
public double getMass()Description copied from interface:PhysicsHandlerGibt die Masse des Ziel-Objekts aus.- Specified by:
getMassin interfacePhysicsHandler- Returns:
- Die Masse des Ziel-Objekts in [kg].
-
applyForce
Description copied from interface:PhysicsHandlerÜbt eine Kraft auf das Ziel-Objekt (im Massenschwerpunkt) aus (sofern möglich).- Specified by:
applyForcein interfacePhysicsHandler- 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) Description copied from interface:PhysicsHandlerWirkt einen Drehmoment auf das Ziel-Objekt.- Specified by:
applyTorquein interfacePhysicsHandler- Parameters:
torque- der Drehmoment, der auf das Ziel-Objekt wirken soll. In [N*m]
-
applyRotationImpulse
public void applyRotationImpulse(double rotationImpulse) Description copied from interface:PhysicsHandlerWirkt einen Drehimpuls auf das Ziel-Objekt.- Specified by:
applyRotationImpulsein interfacePhysicsHandler- Parameters:
rotationImpulse- der Drehimpuls, der auf das Ziel-Objekt wirken soll. in [kg*m*m/s]
-
setType
Description copied from interface:PhysicsHandlerMacht ein Type-Update für diesen Handler.- Specified by:
setTypein interfacePhysicsHandler- Parameters:
type- Der neue Type.
-
getType
- Specified by:
getTypein interfacePhysicsHandler
-
applyForce
- Specified by:
applyForcein interfacePhysicsHandler
-
applyImpulse
Description copied from interface:PhysicsHandlerWirkt einen Impuls auf einem Welt-Point.- Specified by:
applyImpulsein interfacePhysicsHandler- Parameters:
impulse- Ein Impuls (in [Ns]).globalLocation- TODO
-
getWorldHandler
Description copied from interface:PhysicsHandlerGibt den WorldHandler aus, der die Welt handelt, in der sich der Klient befindet.- Specified by:
getWorldHandlerin interfacePhysicsHandler- Returns:
- Der World-Handler, der zu diesem Physics-Handler gehört.
-
getBody
public org.jbox2d.dynamics.Body getBody()Description copied from interface:PhysicsHandlerWird intern zum Debuggen benutzt. Gibt den korrespondierenden Body aus.- Specified by:
getBodyin interfacePhysicsHandler- Returns:
- Der korrespondierende Body.
-
resetMovement
public void resetMovement()Description copied from interface:PhysicsHandlerSetzt die Wirkung aller physikalischer Bewegungen (Geschwindigkeit und Drehung) zurück. Hiernach ist das Objekt in Ruhe.- Specified by:
resetMovementin interfacePhysicsHandler
-
setVelocity
Description copied from interface:PhysicsHandlerSetzt die Geschwindigkeit für das Handler-Objekt.- Specified by:
setVelocityin interfacePhysicsHandler- Parameters:
metersPerSecond- Setzt die Geschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
getVelocity
Description copied from interface:PhysicsHandlerGibt die aktuelle Geschwindigkeit aus.- Specified by:
getVelocityin interfacePhysicsHandler- Returns:
- Die aktuelle Geschwindigkeit.
-
setAngularVelocity
public void setAngularVelocity(double rotationsPerSecond) Description copied from interface:PhysicsHandlerSetzt die Drehgeschwindigkeit für das Handler-Objekt.- Specified by:
setAngularVelocityin interfacePhysicsHandler- Parameters:
rotationsPerSecond- Setzt die Drehgeschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
getAngularVelocity
public double getAngularVelocity()Description copied from interface:PhysicsHandlerGibt die aktuelle Drehgeschwindigkeit aus.- Specified by:
getAngularVelocityin interfacePhysicsHandler- Returns:
- Die aktuelle Drehgeschwindigkeit.
-
setRotationLocked
public void setRotationLocked(boolean locked) Description copied from interface:PhysicsHandlerSetzt, ob die Rotation blockiert sein soll.- Specified by:
setRotationLockedin interfacePhysicsHandler
-
isRotationLocked
public boolean isRotationLocked()- Specified by:
isRotationLockedin interfacePhysicsHandler- Returns:
- Ob die Rotation des Objekts blockiert ist.
-
isGrounded
public boolean isGrounded()Description copied from interface:PhysicsHandlerTestet, 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 interfacePhysicsHandler- Returns:
true, wenn direkt unter dem Objekt ein passives Objekt ist. Sonstfalse.
-
setFixtures
Description copied from interface:PhysicsHandlerEntfernt alle Fixtures/Collider am Actor und setzt alle Fixturs für dieses Objekt neu.- Specified by:
setFixturesin interfacePhysicsHandler- Parameters:
shapes- Die neuen Fixtures als Supplier, der die Liste der Fixtures ausgibt.
-
getPhysicsData
Description copied from interface:PhysicsHandlerGibt die Proxy-Daten des Actors aus.- Specified by:
getPhysicsDatain interfacePhysicsHandler- Returns:
- der gegenwärtige physikalische Zustand des Raum-Objekts in Proxy-Daten.
-
applyMountCallbacks
- Specified by:
applyMountCallbacksin interfacePhysicsHandler
-
getCollisions
- Specified by:
getCollisionsin interfacePhysicsHandler
-
setAwake
public void setAwake(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:
setAwakein interfacePhysicsHandler- Parameters:
value- Der Schlafzustand des Körpers.
-