Class WorldHandler
- All Implemented Interfaces:
ContactListener
Sie ist verantwortlich für:
- Den globalen
World-Parameter aus der JBox2D-Engine. - Übersetzung zwischen JB2D-Vektoren (SI-Basiseinheiten) und denen der Engine (Zeichengrößen)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final double -
Method Summary
Modifier and TypeMethodDescriptionvoidbeginContact(Contact contact) Wird aufgerufen, wenn zwei Halterungen (Fixture) beginnen sich zu berühren.createBody(BodyDef bd, Actor actor) voidendContact(Contact contact) Wird aufgerufen, wenn zwei Halterungen (Fixturekeinen Kontakt mehr haben.booleanlayer()voidpostSolve(Contact contact, ContactImpulse contactImpulse) Wird aufgerufen, nachdem die Kollisionsreaktion berechnet und angewendet wurde.voidWird aufgerufen, nachdem ein Kontakt aktualisiert wurde.voidstep(double pastTime) voidworldPaused(boolean worldPaused)
-
Field Details
-
CATEGORY_PASSIVE
public static final int CATEGORY_PASSIVE- See Also:
-
CATEGORY_STATIC
public static final int CATEGORY_STATIC- See Also:
-
CATEGORY_KINEMATIC
public static final int CATEGORY_KINEMATIC- See Also:
-
CATEGORY_DYNAMIC
public static final int CATEGORY_DYNAMIC- See Also:
-
CATEGORY_PARTICLE
public static final int CATEGORY_PARTICLE- See Also:
-
STEP_TIME
public static final double STEP_TIME- See Also:
-
-
Method Details
-
worldPaused
-
isWorldPaused
public boolean isWorldPaused() -
step
public void step(double pastTime) -
createBody
-
beginContact
Wird aufgerufen, wenn zwei Halterungen (Fixture) beginnen sich zu berühren.- Specified by:
beginContactin interfaceContactListener- Parameters:
contact- Der Kontakt zwischen zwei Halterungen (Fixture. In der Broad Phase besteht für jedes überlappende AABB ein Kontakt (es sei denn, es wurde gefiltert). Daher kann es vorkommen, dass ein Kontakt-Objekt existiert, das keine Kontaktpunkte aufweist.
-
endContact
Wird aufgerufen, wenn zwei Halterungen (Fixturekeinen Kontakt mehr haben.- Specified by:
endContactin interfaceContactListener- Parameters:
contact- Der Kontakt zwischen zwei Halterungen (Fixture. In der Broad Phase besteht für jedes überlappende AABB ein Kontakt (es sei denn, es wurde gefiltert). Daher kann es vorkommen, dass ein Kontakt-Objekt existiert, das keine Kontaktpunkte aufweist.
-
preSolve
Wird aufgerufen, nachdem ein Kontakt aktualisiert wurde.Dies ermöglicht es Ihnen, einen Kontakt zu inspizieren, bevor er an den Solver übergeben wird. Bei sorgfältiger Vorgehensweise können Sie das Kontakt-Manifold modifizieren (z. B. den Kontakt deaktivieren). Es wird eine Kopie des alten Manifolds bereitgestellt, damit Sie Änderungen erkennen können.
- Hinweis: Diese Methode wird nur für aktive (awake) Körper aufgerufen.
- Hinweis: Diese Methode wird auch dann aufgerufen, wenn die Anzahl der Kontaktpunkte null beträgt.
- Hinweis: Diese Methode wird nicht für Sensoren aufgerufen.
- Hinweis: Wenn Sie die Anzahl der Kontaktpunkte auf null setzen, erhalten Sie keinen EndContact-Callback. Möglicherweise erhalten Sie jedoch im nächsten Schritt einen BeginContact-Callback.
- Hinweis: Der Parameter `oldManifold` wird gepoolt; es handelt sich daher bei jedem Callback innerhalb desselben Threads um dasselbe Objekt.
- Specified by:
preSolvein interfaceContactListener- Parameters:
contact- Der Kontakt zwischen zwei Halterungen (Fixture. In der Broad Phase besteht für jedes überlappende AABB ein Kontakt (es sei denn, es wurde gefiltert). Daher kann es vorkommen, dass ein Kontakt-Objekt existiert, das keine Kontaktpunkte aufweist.
-
postSolve
Wird aufgerufen, nachdem die Kollisionsreaktion berechnet und angewendet wurde.Dies ist nützlich, um Impulse zu überprüfen. Hinweis: Das Kontakt-Manifold enthält nicht die Impulse zum Zeitpunkt des Aufpralls; diese können beliebig groß ausfallen, wenn der Teilschritt klein ist. Daher wird der Impuls explizit in einer separaten Datenstruktur bereitgestellt. Hinweis: Diese Funktion wird nur für Kontakte aufgerufen, die sich berühren, fest und aktiv sind.
Der Impule kann beispielsweise verwendet werden, um festzustellen, ob ein Pfeil beim Aufprall im Ziel stecken bleiben soll.
- Specified by:
postSolvein interfaceContactListener- Parameters:
contact- Der Kontakt zwischen zwei Halterungen (Fixture. In der Broad Phase besteht für jedes überlappende AABB ein Kontakt (es sei denn, es wurde gefiltert). Daher kann es vorkommen, dass ein Kontakt-Objekt existiert, das keine Kontaktpunkte aufweist.contactImpulse- This is usually a pooled variable, so it will be modified after this call- See Also:
-
layer
-