Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inelukis Mauspatch. Ein Problem.



Mike
31.10.2005, 07:58
Also, ich dann fange ich mal an.

Ich will in meinem Projekt Diebe so ein kleines Extra für den Maupatch einbauen,
und daher wollte ich wissen, wie ich es machen könnte bzw. muss.

Ich will nämlich drei Felder oben am Bildschirmrand anzeigen lassen,
mit den Menüpunkten -Menü-, -Schätze- und -Held-.
Die Maus funktioniert bereits, aber ich weiss nicht genau, wie ich es machen soll,
damit diese Menüpunkte immer oben angezeigt sind, und sie auch anzuklicken sind, und dann
zum Beispiel das Menü des Makers geöffnet wird.

Hier ein Bild wie ich mir das vorstelle:
http://img499.imageshack.us/img499/5464/mausundleiste9or.th.png (http://img499.imageshack.us/my.php?image=mausundleiste9or.png)
Das Schwert ist der Mauscursor, und die Felder oben müssten angeklickt werden können. Die Felder sind ein einziges Picture, das immer in jeder Mapp angezeigt und angeklickt werden kann.

Ich zähle auf eure Hilfe. Danke.

LG Henry

PS.: Wie würde euch das überhaupt gefallen?

DR_Zeph
31.10.2005, 11:27
http://home.arcor.de/makenshi/page/index.html

Darin ist ein Tut enthalten, welches erklärt, wie man eine Fläche erstellt, auf die man klicken kann.

CeKa
31.10.2005, 12:18
Damit du dir die ganze Leserei ersparen kannst möchte ich dir es erklären, es ist nämlich sehr einfach:

1. Mach ein PP

hier der Quellcode:

0,1s wait
fork condition IF Maustaste 1 (entspricht linker Maustaste)
fork condition IF Maus X below 100
fork condition IF Maux Y below 30
Then open Menü (oder sowas)

So in etwa muss das aussehen

Hier kurz die Erklärung:
Nehmen wir dein Bild ist ca. 100x30 Pixel, lässt du es nun in der oberen rechten ecke anzeigen, kannst du die gleichen variablen überprüfen lassen wie die der Maus.

wenn du 3 menüpunkte hast (99x30 pixel)
kannst du das so machen

0,1 wait
Fork condition IF Maustaste 1
Fork condition IF mousX below 99
Fork condition IF mousY below 30
>mache das was im Menü ganz rechts ist (da ist bei dir der char)
END case
END case
END case
Fork condition IF Maustaste 1
Fork condition IF mousX below 66
Fork condition IF mousY below 30
>mache das was im Menü in der mitte ist
END case
END case
END case
Fork condition IF Maustaste 1
Fork condition IF mousX below 33
Fork condition IF mousY below 30
>mache das was im Menü ganz links ist
END case
END case
END case

Ist vielleicht etwas kompliziert erklärt aber die Funktionen des Mauspatches sind eigentlich easy.

Phönix Tear
31.10.2005, 16:34
Ich denke an der Stelle sollte man das ganze lieber verschachteln. Benutzt er den Code und klickt ganz links auf das Feld öffnen sich die 3 Menüs der Reihe nach (die X Koordinate ist ja kleiner als 99, kleiner als 66 und kleiner als 33). Daher würde ich dir eher diese Variante empfehlen (wie in seinem Beispiel ist das Bild 99x30 groß mit 3 33x30 Pixel Feldern):

<>Fork Variable "Maustaste", 1 same
<><>Fork Variable "Maus Y", < 30
<><><>Fork Variable "Maus X", < 33
<><><><>Call Event "Menü ganz links"
<><><>Else:
<><><>Fork Variable "Maus X", < 66
<><><><>Call Event "Menü mitte"
<><><>Else:
<><><>Fork Variable "Maus X", < 99
<><><><>Call Event "Menü ganz rechts"
<><><>End:
<><>End:
<>End:

Erst wird überprüft ob die Y-Koordinate richtig ist (die ist ja bei allen 3 Feldern gleich), danach die X. Davon gibt es ja 3 verschiedene. Da das linke Feld bis zum Punkt X=33 geht müssen wir das natürlich als erstes abfragen. Wenn die Maus keine X Koordinate unter 33 hat, wird eben der nächst größere geprüft. Dadurch verhindern wir das beim kleinsten Menü die anderen auch aufgerufen werden.

Hoffe das war verständlich ;)

mfg
Phönix Tear

Mike
31.10.2005, 19:52
Ich danke euch ganz herzlich!
Ich hatte meine Probleme mit dem Postitionen? Also, pro Pixel, eine Variablen Wert. Alles funktioniert jetzt wunderbar. Ich habs gleich so gemacht, dass man die Leiste mit beiden Maustasten anklicken kann.
Nochmal danke.

LG Henry

Enolagay
04.11.2005, 14:40
Ich hab mir einfach eine so was geschrieben:
Oben \SW[MausAN] = on
<>IF \V[Maustaste] = 1
<>Message:\V[MausX]x\v[MausY]
:End

Das macht es wirklich einfacher!

Dann einfach den Mauspatch rein.
Fertig!