Wert=IMAGERECTOVERLAP (Bild, X, Y, StartX, StartY, Breite, Höhe)


Beschreibung
Diese Funktion überprüft, ob ein Bild einen rechteckigen Bereich überlappt. Die transparente Farbe wird nicht berücksichtigt. Dadurch ist dieser Befehl relativ ungenau, dafür aber sehr schnell. 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 etwas ungenaue Kollision, die mit dieser Funktion ermittelt werden kann.


Parameter
Bild=Identität des Bildes (z.B. mit LOADIMAGE ermittelt)
X=Hor. Position des Bildes
Y=Ver. Position des Bildes
StartX=Hor. Startkoordinate des rechteckigen Bereichs
StartY=Ver. Startkoordinate des rechteckigen Bereichs
Breite=Breite des rechteckigen Bereichs
Höhe=Höhe des rechteckigen Bereichs


Rückgabewert
0 = keine Kollision
1 = Kollision


Beispiel
Dieses Programm zeichnet einen Kreis. Wenn dieser Kreis einen rechteckigen Bereich berührt, dann wird das Programm gestoppt:

GRAPHICS 640,480,16
gfxCircle=CREATEIMAGE(50,50)
SETBUFFER IMAGEBUFFER(gfxCircle)
COLOR 255,0,0
OVAL 10,10,30,30,1
SETBUFFER BACKBUFFER()
Color 0,0,255
hotX=RND(50,610)
hotY=RND(50,430)
hotW=RND(20,100)
hotH=RND(20,100)
REPEAT
   circleX=MOUSEX()
   circleY=MOUSEY()
   CLS
   RECT hotX,hotY,hotW,hotH,0
   DRAWIMAGE gfxCircle,circleX,circleY
   FLIP
UNTIL IMAGERECTOVERLAP (gfxCircle,circleX,circleY,hotX,hotY,hotW,hotH)
TEXT 0,0, "Kollision! Maustaste drücken"
FLIP
WAITMOUSE()
ENDGRAPHICS


Siehe auch
IMAGERECTCOLLIDE, IMAGESCOLLIDE, IMAGESOVERLAP, RECTSOVERLAP