Hilfe
Parameter
bild | Identität des Bildes (z.B. mit LoadImage ermittelt) |
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