Hilfe
Parameter
bild1 |
Identität des ersten Bildes (z.B. mit LoadImage![]() |
x1 | horizontale Position des ersten Bildes |
y1 | vertikale Position des ersten Bildes |
frame1 | Animationsframe des ersten Bildes (ab 0) |
bild2 | Identität des zweiten Bildes |
x2 | horizontale Position des zweiten Bildes |
y2 | vertikale Position des zweiten Bildes |
frame2 | Animationsframe des zweiten Bildes (ab 0) |
Rückgabewert
0 = keine Kollision
1 = Kollision
Beschreibung
Diese Funktion prüft zwei Bilder auf pixelgenaue Kollision. Dies ist besonders für Objekte mit transparenter Farbe gut geeignet. Das Prüfen geschieht pixelgenau, aber mit einer relativ langsamen Geschwindigkeit. Ist eine so hohe Genauigkeit nicht notwendig, so sollte besser ImageRectOverlap oder ImagesOverlap
verwendet werden. Benutze MaskImage
, um eine transparente Farbe auszuwählen!
Diese Grafik zeigt eine saubere, pixelgenaue 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:
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 ImagesCollide (gfxBox, boxX, boxY, 0, gfxCircle, circleX, circleY, 0)
Text 0, 0, "Kollision! Maustaste drücken"
Flip
WaitMouse()
EndGraphics
Siehe auch
ImageRectCollide, ImageRectOverlap, ImagesOverlap, RectsOverlap

