Bezeichnung
Collision -- überprüft, ob zwei Objekte kollidieren (V2.0)
Übersicht
bool = Collision(type, ...)
bool = Collision(#BOX, x1, y1, width1, height1, x2, y2, width2, height2)
bool = Collision(#BRUSH, id1, x1, y1, id2, x2, y2)
bool = Collision(#LAYER, id1, id2)
bool = Collision(#SPRITE, id1, id2)
bool = Collision(#BRUSH_VS_BOX, id, x, y, x2, y2, width2, height2) (V4.5)
bool = Collision(#LAYER_VS_BOX, id, x, y, width, height) (V4.5)
bool = Collision(#SPRITE_VS_BOX, id, x, y, width, height) (V4.5)
bool = Collision(#SPRITE_VS_BRUSH, id1, id2, x, y) (V7.1)
Beschreibung
Dieser Befehl überprüft, ob zwei Objekte kollidieren. Abhängig vom Objekttyp gibt es mehrere Möglichkeiten, wie Sie diesen Befehl verwenden.

Die folgenden Kollisionstypen werden derzeit unterstützt:

#BOX:
Sie haben die Position und Größe von zwei Rechtecken festgelegt und dieser Befehl wird entscheiden, ob sie kollidieren oder nicht. Dies ist eine schnelle Berechnung, ist aber wahrscheinlich für einige Zwecke nicht exakt genug.

#BRUSH:
Überprüft, ob die beiden Pinsel, welche durch id1 und id2 angegeben wurden, zusammen kollidieren, wenn sie bei x1 und y1 sowie x2 und y2 angezeigt werden. Transparente Bereiche (Maske oder Alpha-Kanal) der Pinsel werden voll berücksichtigt, so dass Sie ein genaues Ergebnis erhalten, wenn Pixel kollidieren oder nicht.

#LAYER:
Überprüft, ob die beiden von id1 und id2 angegebenen Ebenen kollidieren. Falls die Ebenen transparente Bereiche haben, werden diese berücksichtigt. Wenn Sie diesen Typ verwenden, müssen natürlich Ebenen aktiviert werden.

#SPRITE:
Überprüft, ob die beiden in id1 und id2 angegeben Sprites miteinander kollidieren. Wenn die Sprites transparente Bereiche haben, werden diese berücksichtigt.

#BRUSH_VS_BOX:
Überprüft, ob der angegebene Pinsel mit dem rechteckigen Bereich kollidiert. Wenn der Pinsel transparente Bereiche aufweist, werden diese berücksichtigt. (V4.5)

#LAYER_VS_BOX:
Überprüft, ob die angegebene Ebene mit dem rechteckigen Bereich kollidiert. Wenn die Ebene transparente Bereiche aufweist, werden diese berücksichtigt. (V4.5)

#SPRITE_VS_BOX:
Überprüft, ob der angegebene Sprite mit dem rechteckigen Bereich kollidiert. Wenn der Sprite transparente Bereiche aufweist, werden sie berücksichtigt. (V4.5)

#SPRITE_VS_BRUSH:
Prüft, ob das in id1 angegebene Sprite mit dem in id2 angegebenen Pinsel kollidiert, falls der Pinsel an der in x und y bezeichneten Position angezeigt wurde. (V7.1)

Siehe auch Intersection().

Eingaben
type
entweder #BOX, #BRUSH, #SPRITE, #LAYER, #BRUSH_VS_BOX, #LAYER_VS_BOX, #SPRITE_VS_BOX oder #SPRITE_VS_BRUSH (siehe oben)
...
optionale Argumente; hängen vom Typ ab (siehe oben), wobei width die Breite und height die Höhe des jeweiligen Rechtecks ist
Rückgabewerte
bool
True für Kollision, andernfalls False
Beispiel
Box(10, 10, 100, 100, #RED)
Box(70, 70, 100, 100, #BLUE)
b = Collision(#BOX, 10, 10, 100, 100, 70, 70, 100, 100)
Dies gibt True zurück, weil die Rechtecke miteinander kollidieren.

Navigation zeigen