Seite 1 von 1

SpriteCollision

Verfasst: 07.09.2006 19:34
von Mok
Hi.
Wenn ich wissen möchte, ob das Bild des Mauszeigers (extrabild) zb in einem Spiel den Button überdeckt, wie macht man das dann? mit SpriteCollision kann ich mich tot proggen.
Deshalb:

Code: Alles auswählen

SpriteCollision(#Mouse,1,1,#Button,1,1)
SpriteCollision(#Mouse,2,2,#Button,2,2)
...
.
.
Für die, denen ich's zu kompliziert erklärt habe: (excl. Schleifen)

Code: Alles auswählen

LoadSprite(#Mouse,"Zeiger")
LoadSprite(#Button,"Button")
.
.
.
DisplaySprite(#Mouse,0,0)
DisplaySprite(#Button,50,50)
Wie kann ich jetzt überprüfen, ob und wie der Mauszeiger den Button überdeckt :?:

Verfasst: 07.09.2006 19:40
von Kaeru Gaman
simpler koordinaten-check...

nehmen wir mal an, der Button ist 100x30 pix groß, und sitzt bei 200,150:

Code: Alles auswählen

If MX>200 And MX<300 And MY>150 And MY<180
MX und MY enthalten die mauskoordinaten.
am anfang der Hauptschleife machst du einmal:

Code: Alles auswählen

MX = MouseX()
MY = MouseY()
damit sparst du dir häufigeren aufruf der routinen,
außerdem gehst du die ganze zeit von identischen koordinaten aus,
was ein weiterer vorteil ist.

PS:
weiteres zu Koordinaten-Checks:
http://www.purebasic.fr/german/viewtopic.php?t=9093

Verfasst: 07.09.2006 20:07
von Mok
Ich hab dann die UserLib ScreenGadget runtergeladen, die mir aber den Compiler ruiniert hat! :evil:

Verfasst: 07.09.2006 20:28
von Kaeru Gaman
tja, dann musst du möglicherweise neu installieren, ich weiß es nicht.
ich hab dich aber auch nicht aufgefordert, irgendwelche libs zu laden.
viele userlibs sind noch nicht 4.0-kompatibel.

da du von sprites gesprochen hast, bin ich erstmal von ausgegangen,
dass du nen normalen screen benutzt.

bei nem windowedscreen musst du die maus etwas anders abfragen.

aber von nem screengadget war nicht die rede, ich selber benutze prinzipiell keine userlibs.