Package pi.event

Class CollisionEvent<E extends Actor>

java.lang.Object
pi.event.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 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 der CollisionListener an dem entsprechenden Actor-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.
See Also:
  • Method Details

    • colliding

      @API @Getter public E colliding()
      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.
    • tangentNormal

      @API @Getter public Vector tangentNormal()
    • points

      @API @Getter public List<Vector> points()
      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.