Hilfe
Parameter
bild |
Identität des Bildes (z.B. mit LoadImage![]() |
x | horizontale Position des Bildes |
y | vertikale Position des Bildes |
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 überlappt. 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 ImageRectCollide
besser. Für die Kollision zwischen zwei Bildern, ist der Befehl ImagesCollide
notwendig.
Diese Grafik zeigt eine etwas ungenaue Kollision, die mit dieser Funktion ermittelt werden kann:
Beispiel
Dieses Programm zeichnet einen Kreis. Wenn dieser Kreis einen rechteckigen Bereich berührt, dann wird das Programm gestoppt:
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 ImageRectOverlap (gfxCircle, circleX, circleY, 0, hotX, hotY, hotW, hotH)
Text 0, 0, "Kollision! Maustaste drücken"
Flip
WaitMouse()
EndGraphics
Siehe auch
ImageRectCollide, ImagesCollide, ImagesOverlap, RectsOverlap

