Hilfe

ImagesOverlap

B2D B+ B3D

Aufruf

wert = ImagesOverlap (bild1, x1, y1, bild2, x2, y2)

Parameter

bild1 Identität des ersten Bildes (z.B. mit LoadImage ermittelt)
x1 horizontale Position des ersten Bildes
y1 vertikale Position des ersten Bildes
bild2 Identität des zweiten Bildes
x2 horizontale Position des zweiten Bildes
y2 vertikale Position des zweiten Bildes


Rückgabewert

0 = keine Kollision
1 = Kollision


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:


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, 0, gfxCircle, circleX, circleY, 0)
Text 0, 0, "Kollision! Maustaste drücken"
Flip
WaitMouse()
EndGraphics


Siehe auch

ImageRectCollide, ImageRectOverlap, ImagesCollide, RectsOverlap

Übersicht 2D Grafik Bilder