PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ego shooter mit Maus



Don_Alexandro
27.08.2004, 01:16
:\ Sorry aber hier kommt gleich eine Tastenpatch Standartfrage:

Ich wollte eine Ego Shooter Sequenz in ein Spiel einbauen, aber mit der Tastatur hakt das immer so komisch. Es gibt zwar dafür mehrere Games und Skripte, aber die sind alle nicht wirklich das Gelb-Orange vom Ei. Deshalb die Idee: Ego shooter mit Maus!

Anstatt den Helden als Fadenkreutz darzustellen, ändert man Inelukis auszeiger! Geile Idee!

Ich setze mich also an den Pc und fange an. Da ich noch kein Tastenpatch-Guru bin lese ich mir auch die Hilfe Dateien an und alles klappt wunderbar, bis ich feststellen muss, das gar nichts wirklich funktioniert. Ich bewege das Fadenkreutz, aber die Mauskoordinaten sind nicht Syncron zu den Event Koordinaten.

So und mit dieser Erkenntnis musste ich eine weitere Erkenntnis erkennen: Ich komme überhaupt nicht mehr weiter!

Ich habe in die Codes vom Skript und von Vortex durchstöbert, aber trotzdem nix kapiert.

Wo kann man/Wer kann mir helfen? Ich bin sicher nicht der Einzige mit diesem Problem. Gibt es weitere Tastenpatch scripts?

Bitte helfen!

csg
27.08.2004, 03:23
Natürlich sind die koordinaten nicht synchron.
Wenn du die Werte eines Events abfragst, bekommst du seine Position raus (die Felder, wenn man will) so kann man auf einer 15x20 map maximal den x wert 15 und den x wert 20 raus. logisch.
Der Mauspatch arbeitet aber mit pixeln und die auflösung des Makers ist 240x320. Ist doch klar, das da keine einheitlichen ergebnisse rauskommen.
Wie man das problem jetzt löst ist schon etwas schwieriger. Du willst also mit der Maus auf ein event klicken.
Ich hoffe du hast nur vor das ganze auf einer 20x15 map zu bewerkstelligen.

Ich würde es auf die schnelle folgender weiße machen:
Ersteinmal wird die Position des abzuschiessenden events gespeichert.
dann erstellst du 2 Variablen, eine nennst du mausx_max, und die andere mausx_min. Hier speicherst du die Maximalen und minimalen Werte der Maus an, um einen treffer zu garantieren.

Zu erstellst quasi eine Box um den event, nacher musst du nur noch prüfen ob deine Mauskoordinaten in diese Box treffen.
"Hä!? Wie mach ich das?"
Ganz einfach du speicherst nun in die beiden neuen Varialblen den X wert deines events rein. Die Variable mausx_max nimmst du mit 16 mal udn addierst hinterher nochmal genau 16 hinzu.
die Variable mausx_min genauso mit 16, nur ohne das addieren von 16

"Was hab ich den JETZT gemacht!?"
Ich erklärs dir. Als du maux_max mit 16 malgenommen und die 16 addierst hast, hast du deine x koordinate vom event quasi in Pixel umgewandelt. Es stellt jetzt den maximalen wert von pixeln da, mit dem man noch einen Treffer landet. Ohne die 16, was wir jetzt also bei mausx_min gemacht haben, haben wir den minialen wert für einen Treffer. Wir haben also jetzt den Wert der Maus eingekreist. Auf jedenfall für die x koordinate.
Das selbe muss jetzt natürlich auch mit der y koordinate getan werden, dazu werden wieder 2 neue variablen erstellt, mausy_min und mausy_max. Hier verfahren wir genaugleich, beiden den y wert des events zuweißen und dann beide mit 16 multiplizieren, hinterher bei der maximalen Zahl nochmal 16 dazuaddieren.
Schon ist es geschehen.

Jetzt gehst du in deinen parallelen prozess in dem der Tastenpatch ist und musst nur noch überprüfen ob die Maus in die "Box" des events getroffen hat. (die natürlich immer akktualisiert werden muss wenn es sich bewegt)
Wie das geht dürfte klarsein.

wenn (mauskoordinate_x) < mausx_max then
wenn (mauskoordinate_x) > mausx_min then
wenn (mauskoordinate_y) < mausy_max then
wenn (mauskoordinate_y) > maus_min then

TREFFER! *meeep* *splatter effekt*


So, das kannste müsste eigentlich klappen, ich habe es selber nicht ausprobiert.

Don_Alexandro
27.08.2004, 03:49
Danke!

Und wenn man auf Grafiken, anstatt auf Events ballert? Wie würde das denn funktionieren?

Dhan
27.08.2004, 04:16
Bei denen musst du jedesmal, wenn ein Script sie bewegt, in diesem Script Variablen ändern lassen, die dann die Posi angeben

Don_Alexandro
29.08.2004, 20:26
OK
aber ich schreib erstmahl die wirklich wichtige Technik für mein Spiel fertig. Inzwischen benutze ich den "8 Wege Schooter" aus dem tastenpatch beispiel-Spiel, allerdings mit einer Maus anstatt 8 Tasten!