Package ea.collision

Class CollisionEvent<E extends Actor>

java.lang.Object
ea.collision.CollisionEvent<E>
Type Parameters:
E - Typ des anderen Objekts bei Kollisionen.

public class CollisionEvent<E extends Actor> extends Object
Ein Objekt der Klasse CollisionEvent repräsentiert eine Kollision zwischen zwei Actor-Objekten. Nur Actor-Objekte, mit denen ein CollisionListener verkmnüpft ist, 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 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.
See Also:
  • Constructor Details

    • CollisionEvent

      @Internal public CollisionEvent(org.jbox2d.dynamics.contacts.Contact contact, E colliding)
      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

      @API public E getColliding()
      Gibt das Actor-Objekt aus, dass mit dem Actor 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

      @API public Vector getTangentNormal()
    • getPoints

      @API public List<Vector> getPoints()
    • isIgnored

      public boolean isIgnored()