Package ea.collision
Class CollisionEvent<E extends Actor>
java.lang.Object
ea.collision.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 verkmnüpft ist, generieren CollisionEvent
s.
Das CollisionEvent wird verwendet als
-
Angabe des Kollisionspartners: In der Engine ist eines der beiden Actor-Objekte des Aufpralls
implizit bestimmt dadurch, dass der
CollisionListener
an dem entsprechenden Actor-Objekt angemeldet werden musste. Das hiermit kollidierende Objekt ist im Event 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 dasActor
-Objekt aus, dass mit demActor
kollidiert, an dem der Listener angemeldet wurde.void
Wenn diese Methode aufgerufen wird, wird diese Kollision nicht von der Physics-Engine aufgelöst, sondern ignoriert.boolean
-
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 kollidierende Actor-Objekt. Das zweite Objekt der Kollision ist implizit durch die Anmeldung am entsprechenden Actor gegeben.
-
-
Method Details
-
getColliding
Gibt dasActor
-Objekt aus, dass mit demActor
kollidiert, an dem der Listener angemeldet wurde.- Returns:
- Das kollidierende Actor-Objekt. Das zweite Objekt der Kollision ist implizit durch die Anmeldung am entsprechenden Actor gegeben.
-
ignoreCollision
@API public void 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
-
isIgnored
public boolean isIgnored()
-