PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Menü - Event Positionen merken



KleineMaus
26.05.2011, 09:58
Ich mache ein Menü, das aus einer eigenen Map besteht. Wird das Menü mit ESC aufgerufen, so wird der Held auf eine andere Map teleportiert , wird das Menü wieder verlassen soll er dahin zurück teleportiert werden, wo er vorhin war.

Klappt soweit ganz gut und ich habe eingebaut dass Position sowie Blickrichtung des Helden gemerkt werden, damit er wieder an die richtige Stelle teleportiert wird, wenn er aus dem Menü kommt.

MEIN PROBLEM:
Auf den Maps laufen auch Gegner rum und wenn ich aus dem Menü zurück teleportiert werde, erscheinen sie aber alle wieder auf ihrer Startposition, also so wie die Events auf der Map gesetzt sind:-( Dabei sollen auch diese die Position sowie Blickrichtung haben, die sie vor dem Auffruf des Menüs hatten.

FRAGE:
Muss ich wirklich für JEDES Event die Position und Blickrichtung wie beim Helden merken oder gibt es eine Alternative? Erste Lösung möchte ich ungern tun, da sie viele Variablen benötigt und umständlich ist. Das Menü mit Pictures auf der selben Map anzeigen zu lassen ist KEINE ALTERNATIVE und möchte ich nicht.
Also gibt es eine Lösung, die das Problem löst und die Dinge die ich nicht machen möchte auch beachtet? Wenn nicht löse ich es durch das Merken von den Positionen der Gegner, wie das geht und wie man die Variablenzahl möglichst klein hält weiß ich, also bitte nur andere Lösungsansätze bzw. Erklärungen warum es andere Lösungen nicht funktionieren.

Schon mal Danke für eure Hilfe und das Durchlesen ;-)

Vyzzuvazzadth
26.05.2011, 12:00
Wieviele Gegner hast du denn durchschnittlich auf einer Map plaziert?
Wenn es, sagen wir mal, nie mehr als 20 sind, dann brauchst du lediglich 20 Variablen, um die X/Y-Position und die Blickrichtung jedes Gegners auf der Map speichern zu können. Und das für das gesamte Projekt, weshalb 20 Variablen (auch wenns 30 oder 40 sind) meiner Meinung nach nicht das geringste Problem darstellen sollen.
Damit der Maker sich die Positionen von Objekten merken kann, was er bei Mapwechsel ja muss, bist du leider gezwungen, diese Werte irgendwo zu speichern. Beim Helden funktioniert es ja auch nicht anders.

Die einzige Möglichkeit, die ich sehe, ist ein Event zu erstellen, welches beim Menüaufruf alle Gegnerpositionen in Variablen speichert und nach dem Verlassen des Menüs diese wieder ausliest und die Gegner entsprechend neu plaziert.
Und da es nur soviele Variablen braucht, wie es maximal Gegner auf einer Map hat, ist das nicht wirklich viel Handarbeit, ausser du hast teilweise hunderte von Gegnern auf einer Map.

MagicMaker
26.05.2011, 12:34
lediglich 20 Variablen
Eigentlich sind es ja 40.

Man sollte dann bloss nicht mehr als 20 bewegende Events / NPCs auf einer Map haben,
ein bisschen Platz würd ich noch frei halten.


Muss ich wirklich für JEDES Event die Position und Blickrichtung wie beim Helden merken
Ich glaube, die Blickrichtung könntest du dir bei den Events getrost sparen.

Vyzzuvazzadth
26.05.2011, 12:47
Eigentlich sind es ja 40
Es geht auch mit 20, also 1 Variable pro Event. Eine Variable hat 7 Stellen (im RM2k3. Der ungepatchte RM2k hat meines Wissens leider nur 6). Somit ist es möglich, die X/Y-Koordinaten eines Events in eine einzelne Variable zu speichern. Im RM2k3 ist dann noch eine Stelle für die Blickrichtung frei -> Stelle 1-3 = X-Koordinate, Stelle 4-6 = Y-Koordinate, Stelle 7 = Blickrichtung. Dann die einzelnen Werte per Modulo-Funktion wieder auslesen.

Corti
26.05.2011, 13:38
Menümaps wurden mal gemacht, weil vor vielen Jahren die RPG-Maker weniger als 126 Pictures hatten und Leute auch damals schon gern viele Zahlen und Dinge darstellen wollten.

Das hat sich geändert, mittlerweile gibts wenig Grund noch ein Map- statt einem Picturemenü zu verwenden. Die Ausnahme stellen Mapmenüs mit Helden als Cursor und Action-Key Events als Menüpunkten da, diese kann man anfertigen ohne selbst groß Peilung von Technik zu haben.

Knackpunkt:
Die Lösung die einfach, anspruchslos und frei von Nachteilen ist...gibt es nicht.

Lösung:
a) das Menü au Pictures bauen statt als Map
b) diese völlig depperte Lösung sich von 40 Eventes Position und Facedirection zu merken... lol

KleineMaus
26.05.2011, 13:59
Danke sehr für die bisherigen Antworten :-)

@Vyzzuvazzadth
Also mehr als 20 bis 50 Gegner werd eich wohl eher nie auf einer Map haben, eher so 3 bis 15, bei sehr großen Maps eventuell 50, aber davon wird es wenn überhaupt nur eine geben.
Das mit den Modulo und Berrechnen ist mir zu nervig, da hab ich lieber mehr Variablen und paar KB mehr (keine Ahnung was so 100 Variablen ausmachen, sind schätze ich mal Integer..also so viel Byte sind das net), außerdem ist das Spiel sicher langsamer wenn ich für jeden Gegner die Werte berechnen muss.

@MagicMaker
Die Blickrichtung ist bei meinen Spiel gerade extrem wichtig, wiel ich ein Schleichsystem habe, wo man unter anderen den Gegner von hinten überraschen kann und deswegen darf er nicht plötzlich nach vorne gucken, weil er ja einen dann entdeckt XD aber das konntest du ja nicht wissen, sonst ist es tatsächlich nicht so sehr wichtig.

@Corti
Naja, da ich ein AKS habe und nur für das Menü und nicht für ein eigenes Kampfsystem das Ausrichten beim Wiederkehren brauche, sollte ich das Menü eventuell wirklich in Pictures anzeigen lassen.
Meine Frage: Mein Menü besteht aus Minimum 45 Pictures, wegen den Zahelnwerten des Status, bisher ist es durch Events umgesetzt, die je nach Wert ein anderes Aussehen haben. Wird mein Spiel nicht unglaublich langsam wenn ich sagen wir mal 60 Pictures anzeige und eventuell noch paar Parallele Events laufen und von den 60 Pictures ca 10 bewegt werden wegen benötigten Effekten?

MagicMaker
26.05.2011, 14:23
Das hat sich geändert, mittlerweile gibts wenig Grund noch ein Map- statt einem Picturemenü zu verwenden.
Deswegen bin ich auch endlich auf Menüs ohne Maps gestiegen, nach gefühlten 7 Jahren
Begeisterung für Menübastelei. Und es funktioniert bisher ganz gut, ich war bisher der
CE-Methode immer etwas misstrauisch gegenüber, zu Unrecht.


Das mit den Modulo und Berrechnen ist mir zu nervig
Das wärs mir auch, deswegen hab ich das gar nicht erst in Betracht gezogen.
Vyzz du hättest das aber auch gleich erläutern können, ich käm da nicht einfach so drauf.


Wird mein Spiel nicht unglaublich langsam wenn ich sagen wir mal 60 Pictures anzeige und eventuell noch paar Parallele Events laufen und von den 60 Pictures ca 10 bewegt werden wegen benötigten Effekten?
Solange diese 10 Bewegungen keinen Wellen- oder Rotierungs-Effekt an haben, ist es auf
halbwegs guten Systemen des letzten Jahrzehnts noch in super Performance, mein Itemmenü
frisst bis zu ~62 Bilder und ist auf meiner Überhauptgarnichthighendkiste ruckelfrei.

Vyzzuvazzadth
26.05.2011, 15:18
@Vyzzuvazzadth
Das mit den Modulo und Berrechnen ist mir zu nervig, da hab ich lieber mehr Variablen und paar KB mehr (keine Ahnung was so 100 Variablen ausmachen, sind schätze ich mal Integer..also so viel Byte sind das net), außerdem ist das Spiel sicher langsamer wenn ich für jeden Gegner die Werte berechnen muss.
Es wären für die Engine in der Tat mehr Operationen nötig, um die zusätzlichen Modulobefehle durchzuackern, aber ich bezweifle, dass das bei maximal 50 Variablen irgendwie spürbar wäre, zumal diese Modulobefehle ja bloss einmal beim Verlassen des Menüs durchgeführt werden. In einem parallelen Prozess, wo in jedem Frame (0.0 Sek. Waits) viele Operationen durchgeführt werden, würde ich von solchen Spässen der Performance zuliebe natürlich abraten.
Dass es etwas umständlich zum skripten ist, will ich nicht abstreiten ^^


Das wärs mir auch, deswegen hab ich das gar nicht erst in Betracht gezogen.
Vyzz du hättest das aber auch gleich erläutern können, ich käm da nicht einfach so drauf.
Das hätte ich machen können, habs aber wegen folgender Aussage im OP absichtlich weggelassen: "...wie das geht und wie man die Variablenzahl möglichst klein hält weiß ich..."
Ich wollte ja nicht etwas erklären, das der/die Threadersteller/Threaderstellerin schon weiss.