Hilfe

RectsOverlap

B2D B+ B3D

Aufruf

Wert = RectsOverlap (X1, Y1, width1, height1, X2, Y2, width2, height2)

Parameter

X1 X-Koordinate des ersten Rechtecks
Y1 Y-Koordinate des ersten Rechtecks
width1 Breite des ersten Rechtecks
height1 Höhe des ersten Rechtecks
X2 X-Koordinate des zweiten Rechtecks
Y2 Y-Koordinate des zweiten Rechtecks
width2 Breite des zweiten Rechtecks
height2 Höhe des zweiten Rechtecks


Rückgabewert

0 = keine Kollision
1 = Kollision


Beschreibung

Diese Funktion überprüft, ob ein Rechteck ein anderes berührt. Diese Rechtecke müssen sich nicht auf dem Bildschirm befinden. Eigentlich ist dies eine Vereinfachung einer IF...THEN-Prüfung.

Um genauere Kollision zu ermitteln, ist der Befehl ImageRectCollide besser. Für die Kollision zwischen zwei Bildern ist der Befehl ImagesCollide notwendig.

Diese Grafik zeigt eine mögliche Kollision, die mit dieser Funktion ermittelt werden kann.


Beispiel

Dieses Programm zeichnet solange zwei Rechtecke, bis eine Kollision auftritt:

Graphics 640, 480, 16
SetBuffer BackBuffer()
SeedRnd MilliSecs()
While Not KeyHit(1)
   rect1X = Rnd(50, 610)
   rect1Y = Rnd(50, 430)
   rect1W = 50
   rect1H = 50
   rect2X = Rnd(50, 610)
   rect2Y = Rnd(50, 430)
   rect2W = 50
   rect2H = 50
   Cls
   Color Rnd(255), Rnd(255), Rnd(255)
   Rect rect1X, rect1Y, rect1W, rect1H, 0
   Color Rnd(255), Rnd(255), Rnd(255)
   Rect rect2X, rect2Y, rect2W, rect2H, 0
   If RectsOverlap (rect1X, rect1Y, rect1W, rect1H, rect2X, rect2Y, rect2W, rect2H) Then
      Text 0, 0, "Kollision gefunden! Maustaste drücken..."
      Flip
      Exit
   End If
   Flip
   Delay 100
Wend
WaitMouse()
EndGraphics


Siehe auch

ImageRectCollide, ImageRectOverlap, ImagesCollide, ImagesOverlap

Übersicht 2D Grafik Bilder