Wert=RECTSOVERLAP (X1, Y1, Breite1, Höhe1, X2, Y2, Breite2, Höhe2)


Beschreibung
Diese Funktion überprüft, ob ein Rechteck einen anderen 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.


Parameter
X1=X-Koordinate des ersten Rechtecks
Y1=Y-Koordinate des ersten Rechtecks
Breite1=Breite des ersten Rechtecks
Höhe1=Höhe des ersten Rechtecks
X2=X-Koordinate des zweiten Rechtecks
Y2=Y-Koordinate des zweiten Rechtecks
Breite2=Breite des zweiten Rechtecks
Höhe2=Höhe des zweiten Rechtecks


Rückgabewert
0 = keine Kollision
1 = Kollision


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