Mehrere Menüs möglich?

  • #1, by georgmoensMonday, 08. February 2016, 16:11 8 years ago
    Ich habe mal zwei Menüseiten erstellt (Menu 1 und Menü 2) - nicht kopiert!, die gleich aussehen und die jeweiligen Speicherbereiche auch an den gleichen Stellen haben. Dann habe ich eine Auswahlseite gemacht, auf der man anwählen kann, zu welcher Menuseite die Engine gehen soll, wenn man auf die entsprechenden Punkte klickt. Das klappt auch. Danach funktioniert gar kein Menu mehr richtig.
    Wo ist mein Denkfehler? Geht das überhaupt nicht, oder lässt sich so etwas nur mit viel komplexeren Mitteln realisieren?
    Ich brauche das, weil ich ein Spiel für Schulen mache und die Möglichkeit bestehen sollte, für unterschiedliche Schüler unterschiedliche Speicherseiten zu haben.

    Newbie

    87 Posts


  • #2, by DamianoMonday, 08. February 2016, 16:15 8 years ago
    Was genau funkioniert denn in den Menüs nicht?

    Newbie

    35 Posts

  • #3, by georgmoensMonday, 08. February 2016, 17:22 8 years ago
    Also: Wenn ich in der Auswahlseite mit den 10 Möglichkeiten auf 1 drücke, geht er zu Menu 1 wie vorgesehen. Dann aber speichert er diese Auswahlseite, was ja eigentlich auch logisch und richtig ist, aber ja nicht sein soll. Wenn ich in der Auswahlseite auf die 2 drücke, geht er zu Menu 2, dort sind aber alle Speicherplätze schon genauso belegt wie in Menu 1. Ein Problem habe ich schnell lösen können: Ich stelle keine Auswahlseite mehr zur Verfügung, sondern lasse die verschiedenen Menuseiten mit den Ziffern 1 bis 10 anwählen.
    Aber das Problem, dass auf beiden Menuseiten die gleichen Speicherstände gezeigt werden, bleibt.

    Newbie

    87 Posts

  • #4, by MachtnixMonday, 08. February 2016, 23:17 8 years ago
    Die Felder und die damit verbundenen IDs für die Speicherstände gelten offensichtlich für das gesamte Spiel. Mich wundert das auch, denn wenn Du zehn Menüs mit z.B. jeweils einem Speicherfeld anlegst, sollten tatsächlich auch zehn Speicherdateien mit zehn Nummern und zehn IDs angelegt werden... hm. Wieviele liegen denn im "Dokumente"-Ordner?

    Bei den Aktionen gibt es die Bedingung "Wenn Spielstand/Autosave existiert, dann...". Wahrscheinlich müsstest du dann jedesmal abfragen, ob Spielstand 5 oder 7 existieren und dann jeweils das Speichern / Laden unterbinden.

    Bei den Autosaves kann man die Nummer vorher festlegen, da ginge das mit den verschiedenen Menüs (du legst einfach für jedes Menü einen extra Auto-Speicherpunkt fest), bei den normalen Spielständen weiß ich nicht, wie das geht. Man kann ja immer nur "Spielstand speichern / laden" aufrufen. Trotzdem: irgendwie werden ja im Inneren von Visionaire die Nummern vergeben, wahrscheinlich ist das wieder eine Lua-Sache...
    Das wäre mir aber zu kompliziert.

    Was spricht dagegen, nicht einfach zehn Spiele anzufertigen (sogar mit dem Namen des Schülers), die komplett unabhängig voneinander sind?

    Wahrscheinlich spricht die Lizenz dagegen.

    Aber brauchst Du nicht ohnehin ein Login-System, damit der Schüler "3" auch nur seine Speicherstände "3" sehen und benutzen kann..?

    Auf jeden Fall ein interessantes Problem :-)

    Machtnix

    Thread Captain

    1097 Posts

  • #5, by turricanMonday, 08. February 2016, 23:36 8 years ago
    Du könntest versuchen, die Funktionen vom Autosave und "vs=name"


    Mit kann in einem Text die Zeichenkette eines Wert angezeigt werden. 'Name' entspricht dabei dem Namen des Werts im Editor (Groß- und Kleinschreibung beachten). Die Zeichenkette kann entweder im Wert-Editor gesetzt werden, oder direkt in der Datenstruktur über ein Skript (im Feld VValueString).

    Beispiel:

    Ein Wert mit dem Namen 'Spielername' hat den Anfangswert 'Spieler 1'
    Folgender Text zeigt den Namen des Spielers an:
    'Hallo !'



    zu kombinieren. Also der Schüler wird nach seinen Namen gefragt. Wenn es einen Spielstand gibt, lade den/die. Die IDs der Speicherstäne kann man abfangen meine ich...

    http://wiki_de.visionaire2d.net/index.php?title=Texte
    http://www.visionaire-studio.net/forum/thread/the-smartest-w...

    Newbie

    43 Posts

  • #6, by georgmoensTuesday, 09. February 2016, 08:20 8 years ago
    @machtnix
    Die Idee mit den verschiedenen Spielen hatte ich auch schon. Das wird auch die sein, die mir am wenigsten Arbeit macht, ist aber nicht so elegant wink.
    In den Schulen gibt es ja Computerräume - in der Regel so mit 15 bis 20 PCs. Wenn ich 8 Spiele erstelle (mein Spiele ist bewusst schlank gebaut, obwohl es etwa 20 Stunden Spielzeit für Schüler mit mittlerer Lesefähigkeit hat) und diese auf eine DVD packe mit A,B, ... als Unterschied, dann muss der Lehrer halt einmal auf jeden PC so viele Spiele installieren, wie es Klassen gibt und jeder Schüler geht ja sowieso immer an den gleichen Rechner.
    Es gibt dann ja auch noch zusätzlich das Problem, dass man die Speicherstände nur händisch löschen kann, was ja z.B. am Ende eines Halbjahres passieren muss. Und wenn ich so an meine ExkollegInnen denke, dann ist das Hantieren mit Dateien und Ordnern immer mit enormen Schwierigkeiten verbunden.
    Wenn es hier jemanden gäbe, der mir für das alles ein Lua-Skript schreiben könnte, falls überhaupt möglich, wäre das natürlich super. Über den Preis müssten wir dann reden.
    @turrican
    Ich glaube, das ist mir zu kompliziert, jedenfalls sieht es mir kompliziert aus.

    Newbie

    87 Posts

  • #7, by MachtnixTuesday, 09. February 2016, 20:01 8 years ago
    Ich habe ein bisschen rumprobiert und erstmal auch keine Lösung gefunden. Es sieht so aus, als ob - egal wieviele Speichermenüs vorhanden sind - die Speicherfelder immer als ein und dasselbe angewandt werden. Es gibt verdächtige Funktionen, wie z.B.: SceneSavegameScrollStep, bei denen ich vermute, dass der nächste erstellte Speicherpunkt um 1 weitergescrollt wird (wie im Inventar), ich habe aber null Ahnung, wie ich das anwenden könnte...

    Mir fallen jetzt zwei Möglichkeiten ein:
    1. mit Lua versuchen, den Speicherdateinamen mit String-Funktionen einzugeben und jedesmal auch damit abzufragen. Keine Ahnung, wie...

    2. Wenn es darauf ankommt, dass sämtliche Speicherfelder in EINEM Speichermenü liegen, könnte man ein Speichermenü erstellen, dass z.B. zehnmal so hoch wie normal ist. Du packst dasselbe Menübild zehnmal untereinander, jedes bekommt eine Nummer oder den Schülernamen, legst jedesmal das Speicherfeld an (du bekommst also zehn verschiedene Speicherdateien) und versuchst, mit Hilfe eines Kulissenscrollbefehls genau das Menü anzuspringen, das zu dem passenden Schüler gehört. Er sieht also nur "seinen" Ausschnitt und kann dort speichern und laden. Schüler 5 bekommt also das fünfte Menüfeld zugewiesen und hat auch immer denselben Speicherpunkt 5, weil der genau dort liegt. Quick and dirty :-) Ob's funktioniert, weiß ich aber nicht...

    Ich bin mir sicher, dass die Lua-Profis hier elegantere Methoden kennen. Aber ich habe durch Visionaire gelernt, zu tricksen was das Zeug hält...

    Machtnix

    Thread Captain

    1097 Posts

  • #8, by georgmoensTuesday, 09. February 2016, 21:40 8 years ago
    Ich habe das jetzt 10 Mal gelesen und glaube, es verstanden zu haben, was du meinst. Interessante Idee. Mal sehen, ob ich da morgen was basteln kann.

    Newbie

    87 Posts

  • #9, by MachtnixTuesday, 09. February 2016, 22:20 8 years ago
    Verflixt, und ich habe mir SOLCHE Mühe gegeben... ;-)

    Das ginge z.B. mit "Kulisse zu Position scrollen". Leider finde ich nirgends einen Befehl wie: "Kulisse zu einer Position springen", also sieht man bestimmt die Kulisse bis zur Position scrollen, je nachdem, wie schnell "Scrollen" eingestellt wurde. Das wäre natürlich doof; könnte man aber irgendwie mit Maskieren oder mit einem Zwischenbild lösen... während die Kulisse scrollt, wird sie durch ein "Bitte-warten-Bild" abgedeckt.

    Angenommen, du hast diese Kulisse für ein Spiel 800x600 Pixel angelegt. Dann wäre die Speicher-Kulisse 10x600 Pixel hoch, also ein ganz schöner Brocken. Für Schüler 1 scrollt die Kulisse zur Position x=0,y=0. Für Schüler 2 zu 0,600, usw.

    Nebeneinander in der Breite wären die Zahlen noch schlechter.

    Eine Höhe von 6000 Pixel ist vielleicht gar nicht möglich, oder würde mit Sicherheit den Start extrem verlangsamen.

    Zehn Menüs sind wohl ein bisschen zuviel.

    Also das Gelbe vom Ei ist es auch nicht.

    Du merkst schon, dass alles immer aus Improvisationen besteht... ;-) Hauptsache, im fertigen Spiel merkt man davon nichts.

    Aber das Problem ist und bleibt faszinierend. Bei "The longest Journey" kann man ja auch seinen Spielcharakter benennen und festlegen, so dass es soviele verschiedene Spielverläufe wie eingeloggte User gibt. Jeder spielt "sein" Spiel. Wär schon toll, sowas!

    Machtnix

    Thread Captain

    1097 Posts

  • #10, by sebastianWednesday, 10. February 2016, 07:41 8 years ago
    Zum normalen speichersystem:
    Ja, es ist ein globales, welches durch neue speicherfelder auf anderen Menüs nicht einfach aufteilt. Auch die felder selbst, die man definiert sind nur bedingt der "platz" /die ID des speicherstands.
    Ich meine irgendwo gelesen zu haben, dass das system immer auf den ersten freien platz speichert, wenn es einen neuen spielstand anlegt.
    Ist also spielstand 1 und 2 belegt und man klickt auf slot 7 und speichert neu, sollte nun id 1,2 und 3 belegt sein.
    Die Flächen, die du im. Menü dafür ziehst sind also eher reine platzhalter für die bilder und ein "schalter" um das Speichern zu ermöglichen.

    Für deinen plan also eher ungeeignet.

    Thread Captain

    2346 Posts

  • #11, by sebastianWednesday, 10. February 2016, 08:28 8 years ago
    Frage zu deinem plan:
    Kann der spieler/Schüler frei speichern oder soll es automatisch den Fortschritt sichern?

    So oder so macht es sinn sich hier das autosave System genauer anzuschauen, da du dort gewisse ids direkt bestummen kannst.

    Da du den namen des Schülers oder eine Identifikation brauchst, die du in eine variable speichern kannst, müsstest du schauen, dass du entweder per lua ein eingabefeld bastelst oder (was einfacher ist) ein zahlenfeld, wo jeder Schüler seine "id" eintippen kann.
    ---
    Ganz alternativ kannst du versuchen dein ursprüngliches Menü mit autosaves zu realisieren

    Thread Captain

    2346 Posts