Class Actor
- All Implemented Interfaces:
FrameUpdateListenerContainer,KeyListenerContainer,MouseClickListenerContainer,MouseWheelListenerContainer
- Direct Known Subclasses:
Animation,Geometry,Grid,Image,StatefulAnimation,TileContainer
Actor.
Dies ist die absolute Superklasse aller grafischen Objekte. Umgekehrt kann somit jedes grafische Objekt die folgenden Methoden nutzen.
- Author:
- Michael Andonie, Niklas Keller
-
Constructor Summary
ConstructorsConstructorDescriptionActor(Supplier<FixtureData> defaultFixtureSupplier) Erstellt ein neues Objekt. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidaddCollisionListener(CollisionListener<Actor> listener) Meldet einen neuenCollisionListeneran, der auf alle Kollisionen reagiert, die dieser Actor mit seiner Umwelt erlebt.final <E extends Actor>
voidaddCollisionListener(E collider, CollisionListener<E> listener) Meldet einen neuenCollisionListeneran, der auf alle Kollisionen zwischen diesem Actor und dem Actorcolliderreagiert.final <E extends Actor>
voidaddCollisionListener(Class<E> clazz, CollisionListener<E> listener) Meldet einen neuenCollisionListeneran, der auf alle Kollisionen reagiert, die dieser Actor mit seiner Umwelt erlebt.final voidaddMountListener(Runnable listener) Fügt einen Beobachter hinzu, der ausgeführt wird, sobald das Objekt angemeldet wurde.final voidaddUnmountListener(Runnable listener) Fügt einen Beobachter hinzu, der ausgeführt wird, sobald das Objekt abgemeldet wurde.final ValueAnimator<Double>animateOpacity(double time, double toOpacityValue) Animiert die Durchsichtigkeit diesesActor-Objekts über einen festen Zeitraum: Beginnend von der aktuellen Durchsichtigkeit, ändert sie sich "smooth" (mitEaseInOutDouble-Interpolation) vom aktuellen Durchsichtigkeits-Wert (die Ausgabe vongetOpacity()) bis hin zum angegebenen Durchsichtigkeitswert.final ValueAnimator<Double>animateParticle(double lifetime) final voidapplyForce(double forceX, double forceY) final voidapplyForce(Vector force) Wirkt eine Kraft auf den Schwerpunkt des Objekts.final voidapplyForce(Vector force, Vector globalPoint) Wirkt eine Kraft auf einem bestimmten Punkt in der Welt.final voidapplyImpulse(double impulseX, double impulseY) Wirkt einen Impuls auf den Schwerpunkt des Objekts.final voidapplyImpulse(Vector impulse) Wirkt einen Impuls auf den Schwerpunkt des Objekts.final voidapplyImpulse(Vector impulse, Vector globalPoint) Wirkt einen Impuls an einem bestimmten Punkt in der Welt.final voidapplyRotationImpulse(double impulse) final voidapplyTorque(double torque) Wirkt ein Drehmoment auf das Objekt.final booleanPrüft, ob ein bestimmter Punkt innerhalb des Objekts liegt.final DistanceJointcreateDistanceJoint(Actor other, Vector anchorThis, Vector anchorOther) Erstellt einen Stabverbindung (DistanceJoint) zwischen diesem und einem weiterenActor-Objekt.final PrismaticJointcreatePrismaticJoint(Actor other, Vector anchor, double axisAngle) Erstellt einen neuenPrismaticJointzwischen zwei Objekten.final RevoluteJointcreateRevoluteJoint(Actor other, Vector anchor) Erstellt einen Revolute-Joint zwischen dem zugehörigenActor-Objekt und einem weiteren.final RopeJointcreateRopeJoint(Actor other, Vector anchorThis, Vector anchorOther, double ropeLength) Erstellt einen Seilverbindung zwischen diesem und einem weiterenActor-Objekt.final WeldJointcreateWeldJoint(Actor other, Vector anchorThis, Vector anchorOther) Erstellt eine Schweißnaht - besser einen Schweißpunkt - zwischen diesem und einem weiterenActor-Objekt.final doubleGibt die Dämpfung der Rotationsgeschwindigkeit zurück.final doubleGibt die aktuelle Drehgeschwindigkeit aus.final BodyTypeGibt aus, was für ein Physics-Typ dieses Objekt momentan ist.final VectorGibt den Mittelpunkt des Objektes in derSceneaus.final VectorGibt die Position des Zentrum desActor-Objekts relativ zu dessen Position (Anker links unten) an.final List<CollisionEvent<Actor>>Git eine List bestehend aus Kollisionsereignissen zurück.final doubleGibt die aktuelle Dichte des Objekts an.final doubleGibt die Stoßzahl bzw.final doubleGibt den Reibungskoeffizienten für dieses Objekt aus.final doubleGibt den aktuellen Gravitationsfaktor des Objekts an.final EventListeners<KeyListener>final LayergetLayer()final intGibt die Ebenenposition zurück.final doubleGibt die Dämpfung der Geschwindigkeit zurück.final doublegetMass()Gibt die aktuelle Masse des Ziel-Objekts aus.final EventListeners<MouseClickListener>final EventListeners<MouseWheelListener>final doubleGibt die aktuelle Durchsichtigkeit desActor-Objekts zurück.final PhysicsHandlerGibt den aktuellen, internen Physics-Handler aus.final VectorGibt die Position diesesActor-Objekts aus.final doubleGibt den Winkel aus, um den das Objekt derzeit rotiert ist.final VectorGibt die Geschwindigkeit aus, mit der sich dieses Objekt gerade (also in diesem Frame) bewegt.final doublegetX()Gibt die x-Koordinate der linken unteren Ecke zurück.final doublegetY()Gibt die y-Koordinate der linken unteren Ecke zurück.final booleanTestet, ob das Objekt „steht“.final booleanGibt wahr zurück, falls das Objekt einer Ebene zugeordnet ist.final booleanGibt an, ob die Rotation dieses Objekts derzeit innerhalb der physikalischen Simulation blockiert ist.final booleanGibt an, ob das Objekt sichtbar ist.final voidVerwandelt denActorin ein dynamisches Objekt.final voidVerwandelt denActorin ein kinematisches Objekt.final voidVerwandelt denActorin ein Partikel.final voidVerwandelt denActorin einen Sensor.final voidVerwandelt denActorin ein statisches Objekt.final voidmoveBy(double dX, double dY) Verschiebt das Objekt.final voidVerschiebt das Objekt ohne Bedingungen auf der Zeichenebene.final booleanPrüft, ob dieses Objekt sich mit einem weiteren Objekt schneidet.final voidremove()Entfernt das aktuelle Objekt aus seiner aktuellen Ebene, falls das Objekt gerade einer Ebene zugeordnet ist.final voidremoveMountListener(Runnable listener) Entfernt einen Beobachter, der ausgeführt wird, sobald das Objekt angemeldet wurde.final voidremoveUnmountListener(Runnable listener) Entfernt einen Beobachter, der ausgeführt wird, sobald das Objekt abgemeldet wurde.abstract voidrender(Graphics2D g, double pixelPerMeter) Rendert das Objekt am Ursprung.final voidrenderBasic(Graphics2D g, Bounds r, double pixelPerMeter) Die Basiszeichenmethode.final voidVersetzt das Objekt - unabhängig von aktuellen Kräften und Geschwindigkeiten - in Ruhe.final voidrotateBy(double degree) Rotiert das Objekt.final voidsetAngularDamping(double damping) Setzt die Dämpfung der Rotationsgeschwindigkeit.final voidsetAngularVelocity(double rotationsPerSecond) Setzt die Drehgeschwindigkeit "hart" für dieses Objekt.final voidsetBodyType(BodyType type) Setzt das allgemeine Verhalten, dass dieses Objekt im Rahmen der Physics-Engine (und Kollisionserkennungen) haben soll.final voidsetCenter(double x, double y) Verschiebt dieActor-Figur so, dass ihr Mittelpunkt die eingegebenen Koordinaten hat.final voidVerschiebt die Actor-Figur so, dass ihr Mittelpunkt die eingegebenen Koordinaten hat.final voidsetDensity(double density) Setzt die Dichte des Objekts neu.final voidsetElasticity(double elasticity) Setzt die Stoßzahl bzw.final voidsetFixture(Supplier<FixtureData> fixtureSupplier) Ändert die Fixture des Actors neu in eine einzige alternative Fixture.final voidsetFixtures(String shapeCode) Setzt den Umriss für dieses Objekt neu.final voidsetFixtures(Supplier<List<FixtureData>> fixturesSupplier) Ändert die Umrisse dieses Objekts durch Angabe einer Liste.final voidsetFriction(double friction) Setzt den Reibungskoeffizient für das Objekt.final voidsetGravityScale(double factor) Setzt den Gravitationsfaktor, normalerweise im Bereich [0, 1].final voidsetLayerPosition(int position) Setzt die Ebenenposition dieses Objekts.final voidsetLinearDamping(double damping) Setzt die Dämpfung der Geschwindigkeit.final voidsetOpacity(double opacity) Setzt die Durchsichtigkeit des Objekts.final voidsetPhysicsHandler(PhysicsHandler handler) final voidsetPosition(double x, double y) Setzt die Position desActor-Objektes gänzlich neu auf der Zeichenebene.final voidsetPosition(Vector position) Setzt die Position des Objektes gänzlich neu auf der Zeichenebene.final voidsetRotation(double degree) Setzt den Rotationswert des Objekts.final voidsetRotationLocked(boolean rotationLocked) Setzt, ob im Rahmen der physikalischen Simulation die Rotation dieses Objekts blockiert werden soll.final voidsetVelocity(Vector velocity) Setzt die Geschwindigkeit „hart“ für dieses Objekt.final voidsetVisible(boolean visible) Setzt die Sichtbarkeit des Objektes.final voidsetX(double x) Setzt die x-Koordinate der Position des Objektes gänzlich neu auf der Zeichenebene.final voidsetY(double y) Setzt die y-Koordinate der Position des Objektes gänzlich neu auf der Zeichenebene.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.FrameUpdateListenerContainer
addFrameUpdateListener, defer, delay, removeFrameUpdateListener, repeatMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.KeyListenerContainer
addKeyListener, removeKeyListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseClickListenerContainer
addMouseClickListener, removeMouseClickListenerMethods inherited from interface de.pirckheimer_gymnasium.engine_pi.event.MouseWheelListenerContainer
addMouseWheelListener, removeMouseWheelListener
-
Constructor Details
-
Actor
Erstellt ein neues Objekt.- Parameters:
defaultFixtureSupplier- Ein Supplier, der die Default-Shape für dieses Objekt generiert. Die ist in der Regel ein optimal gelegtes Rechteck parallel zu den Axen bei Rotationswinkel 0.
-
-
Method Details
-
addMountListener
Fügt einen Beobachter hinzu, der ausgeführt wird, sobald das Objekt angemeldet wurde.- Parameters:
listener- Beobachter-Implementierung
-
removeMountListener
Entfernt einen Beobachter, der ausgeführt wird, sobald das Objekt angemeldet wurde.- Parameters:
listener- Beobachter-Implementierung
-
addUnmountListener
Fügt einen Beobachter hinzu, der ausgeführt wird, sobald das Objekt abgemeldet wurde.- Parameters:
listener- Beobachter-Implementierung
-
removeUnmountListener
Entfernt einen Beobachter, der ausgeführt wird, sobald das Objekt abgemeldet wurde.- Parameters:
listener- Beobachter-Implementierung
-
setLayerPosition
Setzt die Ebenenposition dieses Objekts. Je größer, desto weiter vorne wird das Objekt gezeichnet.- Parameters:
position- Der Ebenen-Index.- See Also:
-
getLayerPosition
Gibt die Ebenenposition zurück. Je größer, desto weiter vorne wird das Objekt gezeichnet.- Returns:
- Der Ebenen-Index.
- See Also:
-
setVisible
Setzt die Sichtbarkeit des Objektes.- Parameters:
visible- Ob das Objekt sichtbar sein soll oder nicht.
Ist dieser Wertfalse, so wird es nicht gezeichnet.- See Also:
-
isVisible
Gibt an, ob das Objekt sichtbar ist.- Returns:
- Ist
true, wenn das Objekt zurzeit sichtbar ist. - See Also:
-
getOpacity
Gibt die aktuelle Durchsichtigkeit desActor-Objekts zurück.- Returns:
- Gibt die aktuelle Durchsichtigkeit des
Actor-Objekts zurück.
-
setOpacity
Setzt die Durchsichtigkeit des Objekts.- Parameters:
opacity-0.0entspricht einem komplett durchsichtigen (transparenten) Objekt.1.0entspricht einem undurchsichtigem Objekt.
-
contains
Prüft, ob ein bestimmter Punkt innerhalb des Objekts liegt.- Parameters:
point- Der Punkt, der auf Inhalt im Objekt getestet werden soll.- Returns:
true, wenn der Punkt innerhalb des Objekts liegt.
-
overlaps
Prüft, ob dieses Objekt sich mit einem weiteren Objekt schneidet.Für die Überprüfung des Überlappens werden die internen Collider genutzt. Je nach Genauigkeit der Collider kann die Überprüfung unterschiedlich befriedigend ausfallen. Die Collider können im Debug-Modus der Engine eingesehen werden.
-
getCollisions
Git eine List bestehend aus Kollisionsereignissen zurück.- Returns:
- Eine Liste aus Kollisionsereignissen.
-
setBodyType
Setzt das allgemeine Verhalten, dass dieses Objekt im Rahmen der Physics-Engine (und Kollisionserkennungen) haben soll. Eine Erläuterung der verschiedenen Verhaltenstypen finden sich in der Dokumentation vonBodyType. -
makeStatic
Verwandelt denActorin ein statisches Objekt.Statische Objekte haben keine Geschwindigkeit. Sie bewegen sich nicht in der Simulation, Kräfte haben keinen Einfluss auf sie. Diese Eigenschaft gehört zum Beispiel zu Wänden, Böden und Decken.
- See Also:
-
makeDynamic
Verwandelt denActorin ein dynamisches Objekt.Dynamische Objekte verhalten sich wie Objekte der Newton’schen Mechanik. Sie können Kräfte auf sich wirken lassen und interagieren miteinander. Diese Eigenschaft gehört zum Beispiel zu Billiardkugeln, Spielfiguren und Wurfgeschossen.
- See Also:
-
makeKinematic
Verwandelt denActorin ein kinematisches Objekt.Kinematische Objekte können eine Geschwindigkeit haben, aber reagieren nicht auf Kräfte. Sie kollidieren (im Sinne der Physics) nur mit dynamischen Objekten. Diese Eigenschaft gehört zum Beispiel zu beweglichen Plattformen.
- See Also:
-
makeSensor
Verwandelt denActorin einen Sensor.Sensoren nehmen nicht an der Physiksimulation teil. Sie werden von der Physics so behandelt, als wären sie nicht da. Sie generieren trotzdem Kollisionsereignisse. Dies ist die Standardeinstellung für Actors, wenn sie erstellt werden.
- See Also:
-
makeParticle
Verwandelt denActorin ein Partikel.Partikel nehmen wie Sensoren nicht an der Physiksimulation teil, sie generieren trotzdem Kollisionsereignisse. Dieser Typ ist hilfreich, wenn du viele Actors generieren willst, diese aber rein optisch auf das Spiel wirken sollen, wie zum Beispiel Dreck, den ein Auto beim Anfahren aufwühlt oder Funken, die von einer Wand nach einem Schuss sprühen.
- See Also:
-
getBodyType
Gibt aus, was für ein Physics-Typ dieses Objekt momentan ist. -
setFixtures
Setzt den Umriss für dieses Objekt neu. Hat Einfluss auf die Physik (Kollisionen, Masse, etc.)- Parameters:
shapeCode- der Shape-Code- See Also:
-
setFixture
Ändert die Fixture des Actors neu in eine einzige alternative Fixture.- Parameters:
fixtureSupplier- Der Supplier, der die neue Shape des Objektes ausgibt.- See Also:
-
setFixtures
Ändert die Umrisse dieses Objekts durch Angabe einer Liste.- Parameters:
fixturesSupplier- Ein Supplier, der eine Liste mit allen neuen Shapes für den Actor angibt.- See Also:
-
renderBasic
Die Basiszeichenmethode.Sie schließt eine Fallabfrage zur Sichtbarkeit ein.
- Parameters:
g- Das zeichnende Graphics-Objekt.r- Das Bounds, dass die Kameraperspektive repräsentiert.
Hierbei soll zunächst getestet werden, ob das Objekt innerhalb der Kamera liegt, und erst dann gezeichnet werden.pixelPerMeter- Pixel pro Meter.
-
getPhysicsHandler
Gibt den aktuellen, internen Physics-Handler aus.- Returns:
- der aktuellen, internen Physics-Handler aus.
-
addCollisionListener
@API public final <E extends Actor> void addCollisionListener(E collider, CollisionListener<E> listener) Meldet einen neuenCollisionListeneran, der auf alle Kollisionen zwischen diesem Actor und dem Actorcolliderreagiert.- Type Parameters:
E- Typ-Parameter. SOllte im Regelfall exakt die Klasse voncollidersein. Dies ermöglicht die Nutzung von spezifischen Methoden aus spezialisierteren Klassen der Actor-Hierarchie.- Parameters:
listener- Der Listener, der bei Kollisionen zwischen dem ausführenden Actor undcolliderinformiert werden soll.collider- Ein weiteresActor-Objekt.- See Also:
-
addCollisionListener
@API public final <E extends Actor> void addCollisionListener(Class<E> clazz, CollisionListener<E> listener) Meldet einen neuenCollisionListeneran, der auf alle Kollisionen reagiert, die dieser Actor mit seiner Umwelt erlebt.- Type Parameters:
E- Typ des anderen Objekts bei Kollisionen.- Parameters:
clazz- Typ des anderen Objekts bei Kollisionen.listener- Der Beobachter, der bei Kollisionen informiert werden soll, die der ausführende Actor mit allen anderen Objekten der Szene erlebt.- See Also:
-
addCollisionListener
Meldet einen neuenCollisionListeneran, der auf alle Kollisionen reagiert, die dieser Actor mit seiner Umwelt erlebt.- Parameters:
listener- Der Listener, der bei Kollisionen informiert werden soll, die der ausführende Actor mit allen anderen Objekten der Szene erlebt.- See Also:
-
render
Rendert das Objekt am Ursprung.- Die Position ist (0|0).
- Die Roation ist 0.
- Parameters:
g- Das zeichnende Graphics-ObjektpixelPerMeter- Pixel pro Meter.
-
setPhysicsHandler
-
getLayer
- Returns:
- Gibt die Ebene zurück, an der das aktuelle Objekt angemeldet ist,
sonst
null.
-
remove
public final void remove()Entfernt das aktuelle Objekt aus seiner aktuellen Ebene, falls das Objekt gerade einer Ebene zugeordnet ist. -
getKeyListeners
- Specified by:
getKeyListenersin interfaceKeyListenerContainer- Returns:
- Liste der
KeyListener.
-
getMouseClickListeners
- Specified by:
getMouseClickListenersin interfaceMouseClickListenerContainer- Returns:
- Liste der
MouseClickListener.
-
getMouseWheelListeners
- Specified by:
getMouseWheelListenersin interfaceMouseWheelListenerContainer- Returns:
- Liste der
MouseWheelListener.
-
getFrameUpdateListeners
- Specified by:
getFrameUpdateListenersin interfaceFrameUpdateListenerContainer- Returns:
- Liste der
FrameUpdateListener.
-
setRotationLocked
Setzt, ob im Rahmen der physikalischen Simulation die Rotation dieses Objekts blockiert werden soll.Das Objekt kann in jedem Fall weiterhin über einen direkten Methodenaufruf rotiert werden. Der folgende Code ist immer wirksam, unabhängig davon, ob die Rotation im Rahmen der physikalischen Simulation blockiert ist:
actor.getPosition.rotate(4.31);- Parameters:
rotationLocked- Ist dieser Werttrue, rotiert sich dieses Objekts innerhalb der physikalischen Simulation nicht mehr. Ist dieser Wertfalse, rotiert sich dieses Objekt innerhalb der physikalsichen Simulation.- See Also:
-
isRotationLocked
Gibt an, ob die Rotation dieses Objekts derzeit innerhalb der physikalischen Simulation blockiert ist.- Returns:
true, wenn die Rotation dieses Objekts derzeit innerhalb der physikalischen Simulation blockiert ist.- See Also:
-
getMass
Gibt die aktuelle Masse des Ziel-Objekts aus. Die Form bleibt unverändert, daher ändert sich die Dichte in der Regel.- Returns:
- Die Masse des Ziel-Objekts in [kg].
-
setDensity
Setzt die Dichte des Objekts neu. Die Form bleibt dabei unverändert, daher ändert sich die Masse in der Regel.- Parameters:
density- Die neue Dichte des Objekts in [kg/m^2].
-
getDensity
Gibt die aktuelle Dichte des Objekts an.- Returns:
- Die aktuelle Dichte des Objekts in [kg/m^2].
-
setGravityScale
Setzt den Gravitationsfaktor, normalerweise im Bereich [0, 1].- Parameters:
factor- Der Gravitationsfaktor.
-
getGravityScale
Gibt den aktuellen Gravitationsfaktor des Objekts an.- Returns:
- Den Gravitationsfaktor.
-
setFriction
Setzt den Reibungskoeffizient für das Objekt. Dieser hat Einfluss auf die Bewegung des Objekts.- Parameters:
friction- Der Reibungskoeffizient. In der Regel im Bereich [0; 1].- See Also:
-
getFriction
Gibt den Reibungskoeffizienten für dieses Objekt aus.- Returns:
- Der Reibungskoeffizient des Objekts. Ist in der Regel (in der Realität) ein Wert im Bereich [0; 1].
- See Also:
-
setAngularDamping
Setzt die Dämpfung der Rotationsgeschwindigkeit.- Parameters:
damping- Die Dämpfung der Rotationsgeschwindigkeit.
-
getAngularDamping
Gibt die Dämpfung der Rotationsgeschwindigkeit zurück.- Returns:
- Die Dämpfung der Rotationsgeschwindigkeit.
-
setLinearDamping
Setzt die Dämpfung der Geschwindigkeit.- Parameters:
damping- Die Dämpfung der Geschwindigkeit.
-
getLinearDamping
Gibt die Dämpfung der Geschwindigkeit zurück.- Returns:
- Dämpfung der Geschwindigkeit
-
setVelocity
Setzt die Geschwindigkeit „hart“ für dieses Objekt.Damit wird die aktuelle Bewegung (nicht aber die Rotation) des Objekts ignoriert und hart auf den übergebenen Wert gesetzt.
- Parameters:
velocity- Die Geschwindigkeit, mit der sich dieses Objekt ab sofort bewegen soll. In [m / s]- See Also:
-
getVelocity
Gibt die Geschwindigkeit aus, mit der sich dieses Objekt gerade (also in diesem Frame) bewegt.- Returns:
- Die Geschwindigkeit, mit der sich dieses Objekt gerade (also in diesem Frame) bewegt. In [m / s]
- See Also:
-
getAngularVelocity
Gibt die aktuelle Drehgeschwindigkeit aus.- Returns:
- Die aktuelle Drehgeschwindigkeit.
- See Also:
-
setAngularVelocity
Setzt die Drehgeschwindigkeit "hart" für dieses Objekt. Damit wird die aktuelle Rotation des Objekts ignoriert und hart auf den übergebenen Wert gesetzt.- Parameters:
rotationsPerSecond- Die Geschwindigkeit, mit der sich dieses Objekt ab sofort bewegen soll. In [Umdrehnungen / s]- See Also:
-
setElasticity
Setzt die Stoßzahl bzw. den Restitutionskoeffizienten.Mit Hilfe der Stoßzahl bzw. des Restitutionskoeffizienten kann angegeben werden, wie „elastisch“ ein Objekt ist. Wie bei der Reibung liegt der Wertebereich zwischen 0 und 1, wobei 0 bedeutet, dass das Objekt überhaupt nicht zurückfedert, und 1, dass die gesamte Energie des Aufpralls erhalten bleibt. Bei Werte größer 1 prallt das Objekt bei jeder Kollision immer weiter ab. Wenn zwei Objekte aufeinander prallen, federt das Objekt mit dem höheren der beiden Stoßzahlen zurück. Soll ein Objekt nicht abprallen, so müssen beide Objekte auf 0 gesetzt werden.
- Parameters:
elasticity- Die Stoßzahl bzw. der Restitutionskoeffizient.- See Also:
- jbox2d source code:
- https://github.com/jbox2d/jbox2d/blob/94bb3e4a706a6d1a5d8728a722bf0af9924dde84/jbox2d-library/src/main/java/org/jbox2d/dynamics/FixtureDef.java#L132-L137
- box2d source code:
- https://github.com/erincatto/box2d/blob/411acc32eb6d4f2e96fc70ddbdf01fe5f9b16230/include/box2d/b2_fixture.h#L335-L338
-
getElasticity
Gibt die Stoßzahl bzw. den Restitutionskoeffizienten zurück.Mit Hilfe der Stoßzahl bzw. des Restitutionskoeffizienten kann angegeben werden, wie „elastisch“ ein Objekt ist. Wie bei der Reibung liegt der Wertebereich zwischen 0 und 1, wobei 0 bedeutet, dass das Objekt überhaupt nicht zurückfedert, und 1, dass die gesamte Energie des Aufpralls erhalten bleibt. Bei Werte größer 1 prallt das Objekt bei jeder Kollision immer weiter ab. Wenn zwei Objekte aufeinander prallen, federt das Objekt mit dem höheren der beiden Stoßzahlen zurück. Soll ein Objekt nicht abprallen, so müssen beide Objekte auf 0 gesetzt werden.
- Returns:
- Die Stoßzahl bzw. den Restitutionskoeffizienten.
- See Also:
- jbox2d source code:
- https://github.com/jbox2d/jbox2d/blob/94bb3e4a706a6d1a5d8728a722bf0af9924dde84/jbox2d-library/src/main/java/org/jbox2d/dynamics/FixtureDef.java#L125-L130
- box2d source code:
- https://github.com/erincatto/box2d/blob/411acc32eb6d4f2e96fc70ddbdf01fe5f9b16230/include/box2d/b2_fixture.h#L330-L333
-
applyTorque
Wirkt ein Drehmoment auf das Objekt.- Parameters:
torque- Drehmoment, der auf das Ziel-Objekt wirken soll. In [N*m]
-
applyRotationImpulse
public final void applyRotationImpulse(double impulse) -
applyForce
Wirkt eine Kraft auf den Schwerpunkt des Objekts.- Parameters:
force- Der Kraftvektor in [N].
-
applyForce
public final void applyForce(double forceX, double forceY) -
applyForce
Wirkt eine Kraft auf einem bestimmten Punkt in der Welt.- Parameters:
force- Kraft in [N]globalPoint- Ort auf der Zeichenebene, an dem die Kraft wirken soll.
-
applyImpulse
Wirkt einen Impuls auf den Schwerpunkt des Objekts.Beispiele:
- Hammer (300 g, 1 m/s): 0,3 Ns
- Golfball (45 g, 80 m/s): 3,6 Ns
- Pistolenkugel (9 g, 500 m/s): 4,5 Ns
- Radfahrer (80 kg, 18 km/h): 400 Ns
- Auto (2 t, 30 km/h): 16 000 Ns
- Parameters:
impulse- Der Impuls in [Ns] [(kg * m) / s], der auf den Schwerpunkt wirken soll.
-
applyImpulse
public final void applyImpulse(double impulseX, double impulseY) Wirkt einen Impuls auf den Schwerpunkt des Objekts.Beispiele:
- Hammer (300 g, 1 m/s): 0,3 Ns
- Golfball (45 g, 80 m/s): 3,6 Ns
- Pistolenkugel (9 g, 500 m/s): 4,5 Ns
- Radfahrer (80 kg, 18 km/h): 400 Ns
- Auto (2 t, 30 km/h): 16 000 Ns
- Parameters:
impulseX- Der Impuls in x-Richtung in [Ns] [(kg * m) / s], der auf den Schwerpunkt wirken soll.impulseY- Der Impuls in x-Richtung in [Ns] [(kg * m) / s], der auf den Schwerpunkt wirken soll.
-
applyImpulse
Wirkt einen Impuls an einem bestimmten Punkt in der Welt.Beispiele:
- Hammer (300 g, 1 m/s): 0,3 Ns
- Golfball (45 g, 80 m/s): 3,6 Ns
- Pistolenkugel (9 g, 500 m/s): 4,5 Ns
- Radfahrer (80 kg, 18 km/h): 400 Ns
- Auto (2 t, 30 km/h): 16 000 Ns
- Parameters:
impulse- Der Impuls in [Ns].globalPoint- Der Ort auf der Zeichenebene, an dem der Impuls wirken soll.
-
resetMovement
Versetzt das Objekt - unabhängig von aktuellen Kräften und Geschwindigkeiten - in Ruhe.Damit werden alle (physikalischen) Bewegungen des Objektes zurückgesetzt. Sollte eine konstante Schwerkraft (oder etwas Vergleichbares) existieren, wo wird dieses Objekt jedoch möglicherweise aus der Ruhelage wieder in Bewegung versetzt.
-
isGrounded
Testet, ob das Objekt „steht“.Diese Funktion ist unter anderem hilfreich für die Entwicklung von Platformern (z.B. wenn der Spieler nur springen können soll, wenn er auf dem Boden steht).
Diese Funktion ist eine Heuristik, sprich sie ist eine Annäherung. In einer Physik-Simulation ist die Definition von „stehen“ nicht unbedingt einfach. Hier bedeutet es Folgendes:
Ein Objekt steht genau dann, wenn alle Eigenschaften erfüllt sind:- Es ist ein dynamisches Objekt.
- Direkt unter der Mitte der minimalen AABB, die das gesamte Objekt umspannt, befindet sich ein statisches Objekt.
- Returns:
true, falls das Objekt auf einem anderen Objekt steht, siehe Beschreibung.
-
createRevoluteJoint
Erstellt einen Revolute-Joint zwischen dem zugehörigenActor-Objekt und einem weiteren.Definition Revolute-Joint
Verbindet zwei
Actor-Objekte untrennbar an einem Anchor-Point. Die Objekte können sich ab sofort nur noch relativ zueinander drehen.- Parameters:
other- Das zweiteActor-Objekt, das ab sofort mit dem zugehörigenActor-Objekt über einenRevoluteJointverbunden sein soll.anchor- Der Ankerpunkt relativ zu diesem Actor. Es wird davon ausgegangen, dass beide Objekte bereits korrekt positioniert sind.- Returns:
- Ein
Joint-Objekt, mit dem der Joint weiter gesteuert werden kann. - See Also:
-
RevoluteJoint
-
createRopeJoint
@API public final RopeJoint createRopeJoint(Actor other, Vector anchorThis, Vector anchorOther, double ropeLength) Erstellt einen Seilverbindung zwischen diesem und einem weiterenActor-Objekt.- Parameters:
other- Das zweiteActor-Objekt, das ab sofort mit dem zugehörigenActor-Objekt über einenRopeJointverbunden sein soll.anchorThis- Der Ankerpunkt für das zugehörigeActor-Objekt. Der erste Befestigungspunkt des Lassos. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).anchorOther- Der Ankerpunkt für das zweiteActor-Objekt, alsoother. Der zweite Befestigungspunkt des Lassos. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).ropeLength- Die Länge des Lassos. Dies ist ab sofort die maximale Länge, die die beiden Ankerpunkte der Objekte voneinader entfernt sein können.- Returns:
- Ein
Joint-Objekt, mit dem der Joint weiter gesteuert werden kann. - See Also:
-
RopeJoint
-
createPrismaticJoint
Erstellt einen neuenPrismaticJointzwischen zwei Objekten.- Parameters:
other- Objekt, das mit dem aktuellen verbunden werden sollanchor- VerbindungspunktaxisAngle- Winkel- Returns:
- Objekt für die weitere Steuerung des Joints
-
createDistanceJoint
@API public final DistanceJoint createDistanceJoint(Actor other, Vector anchorThis, Vector anchorOther) Erstellt einen Stabverbindung (DistanceJoint) zwischen diesem und einem weiterenActor-Objekt.- Parameters:
other- Das zweiteActor-Objekt, das ab sofort mit dem zugehörigenActor-Objekt über einenDistanceJointverbunden sein soll.anchorThis- Der Ankerpunkt für das zugehörigeActor-Objekt. Der erste Befestigungspunkt des Joints. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).anchorOther- Der Ankerpunkt für das zweiteActor-Objekt, alsoother. Der zweite Befestigungspunkt des Joints. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).- Returns:
- Ein
DistanceJoint-Objekt, mit dem die Verbindung weiter gesteuert werden kann. - See Also:
-
DistanceJoint
-
createWeldJoint
Erstellt eine Schweißnaht - besser einen Schweißpunkt - zwischen diesem und einem weiterenActor-Objekt.- Parameters:
other- Das zweiteActor-Objekt, das ab sofort mit dem zugehörigenActor-Objekt über eine Schweißnaht verbunden sein soll.anchorThis- Der Ankerpunkt für das zugehörigeActor-Objekt. Der erste Befestigungspunkt der Schweißnaht. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).anchorOther- Der Ankerpunkt für das zweiteActor-Objekt, alsoother. Der zweite Befestigungspunkt der Schweißnaht. Die Angabe ist relativ zur Position des zugehörigen Objekts (linke untere Ecke).- Returns:
- Ein
WeldJoint-Objekt, mit dem die Verbindung weiter gesteuert werden kann. - See Also:
-
WeldJoint
-
setPosition
Setzt die Position desActor-Objektes gänzlich neu auf der Zeichenebene. Das Setzen ist technisch gesehen eine Verschiebung von der aktuellen Position an die neue.- Parameters:
x- Die neuex-Koordinate.y- Die neuey-Koordinate.- See Also:
-
setPosition
Setzt die Position des Objektes gänzlich neu auf der Zeichenebene. Das Setzen ist technisch gesehen eine Verschiebung von der aktuellen Position an die neue.- Parameters:
position- Der neue Zielpunkt.- See Also:
-
moveBy
Verschiebt das Objekt ohne Bedingungen auf der Zeichenebene.- Parameters:
vector- Der Vektor, der die Verschiebung des Objekts angibt.- See Also:
-
moveBy
Verschiebt das Objekt.Hierbei wird nichts anderes gemacht, als
moveBy(new Vector(dx, dy))auszuführen. Insofern ist diese Methode dafür gut, sich nicht mit der KlasseVectorauseinandersetzen zu müssen.- Parameters:
dX- Die Verschiebung in Richtung X.dY- Die Verschiebung in Richtung Y.- See Also:
-
setCenter
Verschiebt dieActor-Figur so, dass ihr Mittelpunkt die eingegebenen Koordinaten hat.Diese Methode arbeitet nach dem Mittelpunkt des das Objekt abdeckenden Bounding-Rechtecks durch den Aufruf der Methode
.setCenter(double, double)- Parameters:
x- Diex-Koordinate des neuen Mittelpunktes des Objektesy- Diey-Koordinate des neuen Mittelpunktes des Objektes- See Also:
-
setCenter
Verschiebt die Actor-Figur so, dass ihr Mittelpunkt die eingegebenen Koordinaten hat.Diese Methode arbeitet mit dem Mittelpunkt des das Objekt abdeckenden Bounding-Rechtecks durch den Aufruf der Methode
getCenter().- Parameters:
center- Der neue Mittelpunkt des Objekts- See Also:
-
getX
Gibt die x-Koordinate der linken unteren Ecke zurück. Sollte das Raumobjekt nicht rechteckig sein, so wird die Position der linken unteren Ecke des umschließenden Rechtecks genommen.- Returns:
x-Koordinate- See Also:
-
setX
Setzt die x-Koordinate der Position des Objektes gänzlich neu auf der Zeichenebene. Das Setzen ist technisch gesehen eine Verschiebung von der aktuellen Position an die neue.Achtung!
Bei allen Objekten ist die eingegebene Position die linke, untere Ecke des Rechtecks, das die Figur optimal umfasst. Das heißt, dass dies bei Kreisen z.B. nicht der Mittelpunkt ist! Hierfür gibt es die SondermethodesetCenter(double, double).- Parameters:
x- neue x-Koordinate- See Also:
-
getY
Gibt die y-Koordinate der linken unteren Ecke zurück. Sollte das Raumobjekt nicht rechteckig sein, so wird die Position der linken unteren Ecke des umschließenden Rechtecks genommen.- Returns:
- Die y-Koordinate
- See Also:
-
setY
Setzt die y-Koordinate der Position des Objektes gänzlich neu auf der Zeichenebene. Das Setzen ist technisch gesehen eine Verschiebung von der aktuellen Position an die neue.Achtung!
Bei allen Objekten ist die eingegebene Position die linke, untere Ecke des Rechtecks, das die Figur optimal umfasst. Das heißt, dass dies bei Kreisen z.B. nicht der Mittelpunkt ist! Hierfür gibt es die SondermethodesetCenter(double, double).- Parameters:
y- neuey-Koordinate- See Also:
-
getCenter
Gibt den Mittelpunkt des Objektes in derSceneaus.- Returns:
- Die Koordinaten des Mittelpunktes des Objektes.
- See Also:
-
getCenterRelative
Gibt die Position des Zentrum desActor-Objekts relativ zu dessen Position (Anker links unten) an.- Returns:
- Die Position des Zentrum des
Actor-Objekts relativ zu dessen Position (Anker links unkten).
-
getPosition
Gibt die Position diesesActor-Objekts aus.- Returns:
- die aktuelle Position dieses
Actor-Objekts.
-
rotateBy
Rotiert das Objekt.- Parameters:
degree- Der Winkel (in Grad), um den das Objekt rotiert werden soll.- Werte > 0 : Drehung gegen Uhrzeigersinn
- Werte < 0 : Drehung im Uhrzeigersinn
-
getRotation
Gibt den Winkel aus, um den das Objekt derzeit rotiert ist.- Returns:
- Der Winkel (in Grad), um den das Objekt derzeit rotiert
ist. Jedes Objekt ist bei Initialisierung nicht rotiert
(
getRotation()gibt direkt ab Initialisierung0zurück).
-
setRotation
Setzt den Rotationswert des Objekts.- Parameters:
degree- Der Winkel (in Grad), um den das Objekt von seiner Ausgangsposition bei Initialisierung rotiert werden soll.
-
isMounted
Gibt wahr zurück, falls das Objekt einer Ebene zugeordnet ist.- Returns:
- wahr, falls das Objekt einer Ebene zugeordnet ist, sonst falsch.
-
animateParticle
Setzt denBodyTypeaufPARTICLEund animiert das Partikel, sodass es ausblasst und nach der Lebenszeit komplett verschwindet.- Parameters:
lifetime- Die Lebenszeit in Sekunden.- Returns:
- Das Objekt, das die Animation kontrolliert.
-
animateOpacity
Animiert die Durchsichtigkeit diesesActor-Objekts über einen festen Zeitraum: Beginnend von der aktuellen Durchsichtigkeit, ändert sie sich "smooth" (mitEaseInOutDouble-Interpolation) vom aktuellen Durchsichtigkeits-Wert (die Ausgabe vongetOpacity()) bis hin zum angegebenen Durchsichtigkeitswert.- Parameters:
time- Die Animationszeit in SekundentoOpacityValue- Der Durchsichtigkeit-Wert, zu dem innerhalb vontimezu interpolieren ist.- Returns:
- Ein
ValueAnimator, der diese Animation ausführt. Der Animator ist bereits aktiv, es muss nichts an dem Objekt getan werden, um die Animation auszuführen. - See Also:
-