Wert=IMAGESOVERLAP (Bild1, X1, Y1, Bild2, X2, Y2)


Beschreibung
Diese Funktion prüft zwei Bilder auf Kollision. 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 IMAGESCOLLIDE besser.

Diese Grafik zeigt eine etwas ungenaue Kollision, die mit dieser Funktion ermittelt werden kann.


Parameter
Bild1=Identität des ersten Bildes (z.B. mit LOADIMAGE ermittelt)
X1=Hor. Position des ersten Bildes
Y1=Ver. Position des ersten Bildes
Bild2=Identität des zweiten Bildes (z.B. mit LOADIMAGE ermittelt)
X2=Hor. Position des zweiten Bildes
Y2=Ver. Position des zweiten Bildes


Rückgabewert
0 = keine Kollision
1 = Kollision


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

GRAPHICS 640,480,16
gfxBox=CREATEIMAGE(50,50)
gfxCircle=CREATEIMAGE(50,50)
SETBUFFER IMAGEBUFFER(gfxBox)
COLOR 0,0,255
RECT 10,10,30,30,1
SETBUFFER IMAGEBUFFER(gfxCircle)
COLOR 255,0,0
OVAL 10,10,30,30,1
SETBUFFER BackBuffer()
boxX=RND(50,610)
boxY=RND(50,430)
REPEAT
   circleX=MOUSEX()
   circleY=MOUSEY()
   CLS
   DRAWIMAGE gfxBox,boxX,boxY
   DRAWIMAGE gfxCircle,circleX,circleY
   FLIP
UNTIL IMAGESOVERLAP (gfxBox,boxX,boxY,gfxCircle,circleX,circleY)
TEXT 0,0, "Kollision! Maustaste drücken"
FLIP
WAITMOUSE()
ENDGRAPHICS


Siehe auch
IMAGERECTCOLLIDE, IMAGERECTOVERLAP, IMAGESCOLLIDE, RECTSOVERLAP