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


Beschreibung
Diese Funktion überprüft, ob ein Bild einen rechteckigen Bereich berührt oder überlappt. Dies ist besonders für Objekte mit transparenter Farbe gut geeignet. Die Prüfung geschieht pixelgenau - daher etwas langsamer als IMAGERECTOVERLAP. Um die Kollision zwischen zwei Bilder zu prüfen, ist der Befehl IMAGESCOLLIDE besser. Benutze MASKIMAGE, um eine transparente Farbe auszuwählen!

Diese Grafik zeigt eine saubere, pixelgenaue 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
Frame=Animationsframe des Bildes (ab 0)
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,0,1
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 IMAGERECTCOLLIDE (gfxCircle,circleX,circleY,0,hotX,hotY,hotW,hotH)
TEXT 0,0, "Kollision! Maustaste drücken"
FLIP
WAITMOUSE()
ENDGRAPHICS


Siehe auch
IMAGERECTOVERLAP, IMAGESCOLLIDE, IMAGESOVERLAP, RECTSOVERLAP