Hallo,
ich habe auf einem Screen einige Sprites dargestellt, die ich mittels der Maustaste anwählen möchte. Gibt es einen Befehl, mit dem ich abfragen kann, ob sich der Mauspfeil über einem bestimmten Sprite befindet?
Abfrage ob Mouse über einem bestimmten Sprite ist
-
- Beiträge: 49
- Registriert: 21.06.2007 14:40
- PureBasic4.0
- Beiträge: 785
- Registriert: 29.10.2006 17:26
- Wohnort: 127.0.0.1

ich habe das ganze in ein Bild gepackt, weil phpBB das so darstellt:
Code: Alles auswählen
If MouseX() > SpriteX And MouseX() <SpriteX> SpriteY And MouseY() < SpriteY + SpriteHeight(1)
;...
EndIf
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
-
- Beiträge: 49
- Registriert: 21.06.2007 14:40
Hört sich auf jeden Fall schon einmal super an. Die Spriteausgabe ist bei mir aber folgendermaßen:
Ich habe ein Array (x,y) erstellt. Dies stellt sozusagen eine Spielfeldkarte dar. Auf dem Bildschirm gebe ich einen Kartenausschnitt aus. Jetzt möchte ich mit der Maus ein Feld dieser Ausgabe anwählen können. Natürlich wird beispielsweise der Sprite "Grasfläche" hier öfter ausgegeben, so dass ich - so denke ich auf jeden Fall - mit der Sprite# nicht weiterkomme. Wenn ich das Feld anklicke möchte ich die x und y-Koordinate des Arrayfeldes als Resultat wiederbekommen.
Ich habe ein Array (x,y) erstellt. Dies stellt sozusagen eine Spielfeldkarte dar. Auf dem Bildschirm gebe ich einen Kartenausschnitt aus. Jetzt möchte ich mit der Maus ein Feld dieser Ausgabe anwählen können. Natürlich wird beispielsweise der Sprite "Grasfläche" hier öfter ausgegeben, so dass ich - so denke ich auf jeden Fall - mit der Sprite# nicht weiterkomme. Wenn ich das Feld anklicke möchte ich die x und y-Koordinate des Arrayfeldes als Resultat wiederbekommen.
ah eine Tilemap.. leider sind aufgrund eines HDD Crashes meine alten Codes weg, dadrunter ein Tilemap Editor.
Grundprinzip:
Zur Darstellung hast du ja w3ohl 2 Variablen, die die horizontale und Vertikale Verschiebung der Map anzeigen...
Entweder sind diese in Pixeln oder stehen für einen Schritt im Array.
grundsätzlich musst du dann die mausposition mit der Verschiebung der map * tilegröße Vergleichen
Sind einfache rechnung.
Lass die einfach alle wichtigen werte mittels drawtext anzeigen und probier ein bisschen herum ob du nun + oder - oder * oder / an bestimmten Stellen brauchst.
Genau so wie du deine Map anzeigen Lässt kannst du auch rückwirkend die relativen oder absoluten X/Y Positionen sowieso den Array eintrag herausfinden.
Grundprinzip:
Zur Darstellung hast du ja w3ohl 2 Variablen, die die horizontale und Vertikale Verschiebung der Map anzeigen...
Entweder sind diese in Pixeln oder stehen für einen Schritt im Array.
grundsätzlich musst du dann die mausposition mit der Verschiebung der map * tilegröße Vergleichen
Sind einfache rechnung.
Lass die einfach alle wichtigen werte mittels drawtext anzeigen und probier ein bisschen herum ob du nun + oder - oder * oder / an bestimmten Stellen brauchst.
Genau so wie du deine Map anzeigen Lässt kannst du auch rückwirkend die relativen oder absoluten X/Y Positionen sowieso den Array eintrag herausfinden.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
kernpunkt ist einfach, berechne es aus den mauskoordinaten und den darstellungs-koordinaten der sprites.
für check auf ner tilemap, das hat a14xerus schon gut umrissen...
der code mit den koordinaten-checks heißt "collisions", und befindet sich im C-T&T-unterforum...
für check auf ner tilemap, das hat a14xerus schon gut umrissen...
der code mit den koordinaten-checks heißt "collisions", und befindet sich im C-T&T-unterforum...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 49
- Registriert: 21.06.2007 14:40