Hilfe
Parameter
bild |
Identität des Bildes (z.B. mit LoadImage![]() |
x | horizontale Position des Bildes |
y | vertikale Position des Bildes |
frame | Animationsframe des Bildes (ab 0) |
start_x | horizontale Startkoordinate des rechteckigen Bereichs |
start_y | vertikale Startkoordinate des rechteckigen Bereichs |
breite | Breite des rechteckigen Bereichs |
höhe | Höhe des rechteckigen Bereichs |
Rückgabewert
0 = keine Kollision
1 = Kollision
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:
Beispiel
Standardbeispiel:
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

