Interface PhysicsHandler
- All Known Implementing Classes:
BodyHandler,NullHandler
Beschreibt allgemein ein Objekt, dass die physikalischen Eigenschaften eines
Actor-Objektes kontrollieren kann. Dazu gehört:
Created by andonie on 16.02.15.-
Method Summary
Modifier and TypeMethodDescriptionvoidapplyForce(Vector force) Übt eine Kraft auf das Ziel-Objekt (im Massenschwerpunkt) aus (sofern möglich).voidapplyForce(Vector kraftInN, Vector globalLocation) voidapplyImpulse(Vector impulsInNS, 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.booleanGibt an, ob ein bestimmter Punkt auf der Zeichenebene innerhalb des Ziel-Objekts liegt.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>> fixtures) 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 restitution) 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.
-
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).- Parameters:
v- Ein Vector, um den das Ziel-Objekt verschoben werden soll. Dies ändert seine Position, jedoch sonst keine weiteren Eigenschaften.
-
getCenter
Gibt den Gewichtsmittelpunkt diesesActor-Objekts aus.- 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.- Parameters:
p- 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.
-
getPosition
Gibt die aktuelle Position des Ziel-Objekts an.- 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
Gibt die aktuelle Rotation des Ziel-Objekts in Grad an. Bei Erstellung einesActor-Objekts ist seine Rotation stets 0.- Returns:
- die aktuelle Rotation des Ziel-Objekts in Grad.
-
rotateBy
Rotiert das Ziel-Objekt um einen festen Winkel.- 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
-
setDensity
-
getDensity
-
setGravityScale
-
getGravityScale
-
setFriction
-
getFriction
-
setRestitution
-
getRestitution
-
setLinearDamping
-
getLinearDamping
-
setAngularDamping
-
getAngularDamping
-
getMass
Gibt die Masse des Ziel-Objekts aus.- Returns:
- Die Masse des Ziel-Objekts in [kg].
-
applyForce
Übt eine Kraft auf das Ziel-Objekt (im Massenschwerpunkt) aus (sofern möglich).- Parameters:
force- Die Kraft, die auf den Massenschwerpunkt angewandt werden soll. Nicht in [px], sondern in [N] = [m / s^2].
-
applyTorque
Wirkt einen Drehmoment auf das Ziel-Objekt.- Parameters:
torque- der Drehmoment, der auf das Ziel-Objekt wirken soll. In [N*m]
-
applyRotationImpulse
Wirkt einen Drehimpuls auf das Ziel-Objekt.- Parameters:
rotationImpulse- der Drehimpuls, der auf das Ziel-Objekt wirken soll. in [kg*m*m/s]
-
setType
Macht ein Type-Update für diesen Handler.- Parameters:
type- Der neue Type.
-
getType
-
applyForce
-
applyImpulse
Wirkt einen Impuls auf einem Welt-Point.- Parameters:
impulsInNS- Ein Impuls (in [Ns]).globalLocation- TODO
-
getWorldHandler
Gibt den WorldHandler aus, der die Welt handelt, in der sich der Klient befindet.- Returns:
- Der World-Handler, der zu diesem Physics-Handler gehört.
-
getBody
Wird intern zum Debuggen benutzt. Gibt den korrespondierenden Body aus.- Returns:
- Der korrespondierende Body.
-
resetMovement
Setzt die Wirkung aller physikalischer Bewegungen (Geschwindigkeit und Drehung) zurück. Hiernach ist das Objekt in Ruhe. -
setVelocity
Setzt die Geschwindigkeit für das Handler-Objekt.- Parameters:
metersPerSecond- Setzt die Geschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
getVelocity
Gibt die aktuelle Geschwindigkeit aus.- Returns:
- Die aktuelle Geschwindigkeit.
-
setAngularVelocity
Setzt die Drehgeschwindigkeit für das Handler-Objekt.- Parameters:
rotationsPerSecond- Setzt die Drehgeschwindigkeit, mit der sich das Zielobjekt bewegen soll.
-
getAngularVelocity
Gibt die aktuelle Drehgeschwindigkeit aus.- Returns:
- Die aktuelle Drehgeschwindigkeit.
-
setRotationLocked
Setzt, ob die Rotation blockiert sein soll. -
isRotationLocked
- Returns:
- Ob die Rotation des Objekts blockiert ist.
-
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.- Returns:
true, wenn direkt unter dem Objekt ein passives Objekt ist. Sonstfalse.
-
setFixtures
Entfernt alle Fixtures/Collider am Actor und setzt alle Fixturs für dieses Objekt neu.- Parameters:
fixtures- Die neuen Fixtures als Supplier, der die Liste der Fixtures ausgibt.
-
getPhysicsData
Gibt die Proxy-Daten des Actors aus.- Returns:
- der gegenwärtige physikalische Zustand des Raum-Objekts in Proxy-Daten.
-
applyMountCallbacks
-
getCollisions
List<CollisionEvent<Actor>> getCollisions() -
setAwake
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.
- Parameters:
value- Der Schlafzustand des Körpers.
-