Class CollisionEvent<E extends Actor>
java.lang.Object
de.pirckheimer_gymnasium.engine_pi.event.CollisionEvent<E>
- Type Parameters:
E- Typ des anderen Objekts bei Kollisionen.
Ein Objekt der Klasse
CollisionEvent repräsentiert eine Kollision
zwischen zwei Actor-Objekten. Nur Actor-Objekte, mit
denen ein CollisionListener verknüpft sind, generieren
CollisionEvents.
Das CollisionEvent wird verwendet als
- Angabe des Kollisionspartners: In der Engine ist eines der beiden
Actor-Objekte des Aufpralls implizit bestimmt dadurch, dass derCollisionListeneran dem entsprechendenActor-Objekt angemeldet werden musste. Das hiermit kollidierende Objekt ist im Ereignis angegeben. - Ausführliche Informationsquelle: Hierüber sind Informationen zur Kollision erhältlich, z. B. über die Härte des Aufpralls.
- Kontrolle der Kollisionsauflösung: Der Nutzer kann entscheiden, ob die Kollision aufgelöst werden soll oder ignoriert werden soll. Hiermit lassen sich zum Beispiel einseitige Sperren/Wände umsetzen.
-
Constructor Summary
ConstructorsConstructorDescriptionCollisionEvent(org.jbox2d.dynamics.contacts.Contact contact, E colliding) Konstruktor. -
Method Summary
Modifier and TypeMethodDescriptionGibt eine Liste von Berührungspunkten aus.voidWenn diese Methode aufgerufen wird, wird diese Kollision nicht von der Physics-Engine aufgelöst, sondern ignoriert.booleanGibt wahr zurück, falls dieses Ereignis ignoriert wurde.
-
Constructor Details
-
CollisionEvent
Konstruktor. Erstellt ein Collision-Event.- Parameters:
contact- Das JBox2D-Contact-Objekt zur direkten Manipulation der Kollisionsauflösung (und zur Abfrage von Informationen).colliding- Das kollidierendeActor-Objekt. Das zweite Objekt der Kollision ist implizit durch die Anmeldung am entsprechenden Actor gegeben.
-
-
Method Details
-
getColliding
-
ignoreCollision
Wenn diese Methode aufgerufen wird, wird diese Kollision nicht von der Physics-Engine aufgelöst, sondern ignoriert.Dies lässt sich Nutzen zum Beispiel für:
- Feste Plattformen, durch die man von unten „durchspringen“ kann, um so von unten auf sie drauf zu springen.
- Einbahn-Sperren, die nur auf einer Seite durchlässig sind.
- Gegner, die nicht miteinander kollidieren sollen, sondern nur mit dem Spielcharakter.
-
getTangentNormal
-
getPoints
Gibt eine Liste von Berührungspunkten aus.- Returns:
- Eine Liste von aus Berührungspunkten. Die Liste kann keine, einen oder zwei Berührungspunkte enthalten.
- Throws:
IllegalStateException- Wenn die Anzahl der Berührungspunkten größer als 2 ist.
-
isIgnored
public boolean isIgnored()Gibt wahr zurück, falls dieses Ereignis ignoriert wurde.- Returns:
- Wahr, falls dieses Ereignis ignoriert wurde, sonst falsch.
-