public abstract class Collider
extends java.lang.Object
implements java.lang.Cloneable
Ein Collider ist die abstrakte Form einer Umgebung in der Zeichenebene. Durch das Vergleichen von verschiedenen Collidern l�sst sich eine effektive Collision Detection erm�glichen, also das Pr�fen auf Kollisionen zweier #ea.Raum
-Objekte.
Modifier and Type | Field and Description |
---|---|
protected Vektor |
offset
Der Offset dieses Colliders.
|
Constructor and Description |
---|
Collider() |
Modifier and Type | Method and Description |
---|---|
static boolean |
boxboxCollision(BoxCollider b1,
BoxCollider b2,
Punkt p1,
Punkt p2)
Logische Abfrage für die Kollision zweier Boxen.
|
abstract Collider |
clone()
Überschriebene Clone-Methode für effizientes, tiefgehendes klonen von Collidern.
|
abstract boolean |
istNullCollider()
Gibt zur�ck, ob dieser Collider ein
NullCollider ist, also nur false zur�ckgeben kann. |
Vektor |
offset()
Gibt den Offset dieses Vektors relativ zum zugehörigen
Raum an. |
void |
offsetSetzen(Vektor os)
Setzt den Offset dieses Colliders neu.
|
static boolean |
sphereboxCollision(SphereCollider sphere,
BoxCollider box,
Punkt ps,
Punkt pb)
Logische Abfrage für die Kollision eines Kreises mit einer Box.
|
static boolean |
spheresphereCollision(SphereCollider s1,
SphereCollider s2,
Punkt p1,
Punkt p2)
Logische Abfrage für die Kollision zweier Kreise.
|
abstract boolean |
verursachtCollision(Punkt positionThis,
Punkt positionOther,
Collider other)
Prüft, ob dieser Collider sich mit einem weiteren Collider schneidet.
|
protected Vektor offset
Der Offset dieses Colliders. Die Verwendung des Offsets hängt von den implementierenden Subklassen ab.
#offsetSetzen(Punkt)
public static boolean boxboxCollision(BoxCollider b1, BoxCollider b2, Punkt p1, Punkt p2)
Logische Abfrage für die Kollision zweier Boxen.
b1
- Box 1b2
- Box 2p1
- Position von Box 1 auf der Zeichenebenep2
- Position von Box 2 auf der Zeichenebenetrue
, wenn sich beide Boxen bei aktueller Belegung schneiden, sonst false
.public static boolean spheresphereCollision(SphereCollider s1, SphereCollider s2, Punkt p1, Punkt p2)
Logische Abfrage für die Kollision zweier Kreise.
s1
- Kreis 1s2
- Kreis 2p1
- Position von Kreis 1 auf der Zeichenebenep2
- Position von Kreis 2 auf der Zeichenebenetrue
, wenn sich beide Kreise bei aktueller Belegung schneiden, sonst false
.public static boolean sphereboxCollision(SphereCollider sphere, BoxCollider box, Punkt ps, Punkt pb)
Logische Abfrage für die Kollision eines Kreises mit einer Box.
sphere
- Der Kreisbox
- Die Boxps
- Position von Spherepb
- Position von Boxtrue
, wenn sich Kreis und Box schneiden, sonst false
.public final void offsetSetzen(Vektor os)
Setzt den Offset dieses Colliders neu.
Erläuterung
Zunächst liegen Position vom Raum
-Objekt und dem Collider direkt aufeinander. Der Offset wird also relativ zur aktuellen Position des Raum
-Objektes in der Zeichenebene hinzugerechnet, um die endgültige Position des Colliders für die Kollisionsabfragen festzulegen.
os
- Der neue Offset für diesen Collider.offset()
public final Vektor offset()
Gibt den Offset dieses Vektors relativ zum zugehörigen Raum
an.
Raum
an.public abstract boolean verursachtCollision(Punkt positionThis, Punkt positionOther, Collider other)
Prüft, ob dieser Collider sich mit einem weiteren Collider schneidet.
other
- Ein zweiter Collider.true
, falls sich dieser Collider mit dem zweiten Collider schneidet. Schneiden sich dieser Collider und der zweite Collider nicht, so gibt diese Funktion false
zurück.public abstract boolean istNullCollider()
Gibt zur�ck, ob dieser Collider ein NullCollider
ist, also nur false
zur�ckgeben kann.
true
, falls dieser Collider ein Null-Collider ist, sonst false
.public abstract Collider clone()
Überschriebene Clone-Methode für effizientes, tiefgehendes klonen von Collidern. Das bedeutet, dass auch tiefer liegende Referenzen frisch geklont werden, bis in die tiefste Referenzebene.
clone
in class java.lang.Object