Geschrieben um 14:22 am 22.07.2005 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 37 | Hallo und guten Tag erstmal, ich habe ein kleines Problem bei der Programmierung meines ersten Adventures mit TAG. Ich habe einen Ausführungsblock, durch den ein Menüsystem eines Computers abgebildet wird. Das funktioniert komplett über wenn/dann-Abfragen und bis jetzt klappt auch alles was ich damit machen will. Das einzige Problem ist, wenn ich einen Punkt aufgerufen habe, der kein neues Untermenü mehr enthält, ist der Ausführungsblock zuende und ich lande wieder in der normalen Befehlseingabe. Da aber mehrere Funktionen über das Menü gesteuert werden können, ist es etwas nervig, das Computerterminal im Spiel immer wieder bedienen zu müssen, um eine weitere Aktion auszuführen. Deshalb die Frage: Gibt es bei T.AG. eine Anweisung, mit der ich an den Anfang des Anweisungsblocks zurückgehen kann um die Anweisung komplett von vorn auszuführen? Oder gibt es ersatzweise eine Möglichkeit, Sprungmarken zu setzen, die mit einem Sprungbefehl angesprungen werden? Ich gebe zu daß ich noch nicht das komplette Handbuch durchgelesen habe, aber in den Beispielen die ich bis jetzt gesehen habe, habe ich nichts gefunden. |
Geschrieben um 14:53 am 22.07.2005 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | neon:
Oder gibt es ersatzweise eine Möglichkeit, Sprungmarken zu setzen, die mit einem Sprungbefehl angesprungen werden? Einen Sprungbefehl und Sprungmarken gibt es in T.A.G. nicht. Du könntest aber eine Schleife schreiben, die nur dann verlassen wird, wenn eine lokale Variable wahr oder falsch ist, etwa so:
Oder du könntest eine Endlosschleife schreiben, aus der du dann mit stop oder Bed herausspringst:
Du kannst dir auch einmal den Code zu reden.adx anschauen, dort wird auch ein Menüsystem benutzt. |
Geschrieben um 14:59 am 22.07.2005 | Zitat | Editieren | Löschen | |
Gast | neon:
Hallo zurück! neon:
Wäre da nicht Jenach geschickter? Nur ein Vorschlag, ohne deinen Code zu kennen. Bed(ingung) darfst du aber nicht verwenden, weil das ja ein implizites Stop verursacht. neon:
Der Ausführungsblock ist erst mit einem Stop zuende - oder wenn er keine Befehle mehr enthält. Ich denke, dein Problem ist ganz einfach lösbar, indem du den Code in eine Schleife einbaust, die solange läuft, bis eine bestimmte Flagge gesetzt wird. Gibt der Spieler, sagen wir einmal, 0 ein (für: Aktion abbrechen), setzt du diese Flagge, und du kommst zur Standard-Texteingabe zurück (bzw. der Spieler). Siehe Handbuch, Kapitel 5.3. http://martin-oehm.de/tagman/kap_05.html neon:
Schon richtig, nur ein Hinweis: Korrekter Weise solltest du dann aber bei jeder Runde den Rundenzähler um 1 vergrößern: Zeit vergeht ja trotzdem. neon:
Zum Glück nicht! Du würdest beim Betatesten verzweifeln. neon:
Möglichst ohne besserwisserisch zu klingen: Bitte hol das nach. Das Handbuch liest sich ja wirklich schnell und leicht. Alle Erweiterungen brauchst du nicht zu kenne, und die Beispiele musst du auch nicht kennenlernen, aber ohne Handbuchlektüre wirst du so viele einfache Fehler machen, dass das Debuggen des ersten Spiels zur Hölle wird - weil du erkennst, dass du ganze Codeblöcke umschreiben musst, oder du baust eine Ausnahme nach der anderen, und das Chaos wird immer größer. Schritt für Schritt kannst du dir dann auch die Erweiterungen auf der Seite Nützliches bei Martin anschauen: http://martin-oehm.de/tag/nuetzl.html In deinem Fall passt die Erweiterung zum Thema Reden sehr gut; schau sie dir einmal an und versuche, sie zu verstehen (für Anfänger sicher nicht ganz leicht, aber die Mühe wert). Viele Grüße, Florian |
Geschrieben um 15:01 am 22.07.2005 | Zitat | Editieren | Löschen | |
Gast | Ah, der Meister hat gleichzeitig selbst geantwortet. Ich wähnte ihn im Chiemgau. |
Geschrieben um 15:05 am 22.07.2005 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 37 | Die erste Möglichkeit gefällt mir am besten. Ich werde das ausprobieren und später bescheid sagen ob es für meine Zwecke das richtige ist. Vielen Dank |
Geschrieben um 15:16 am 22.07.2005 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 37 | Anonymous:
Da gebe ich Dir vollkommen recht, ich gehöre nur leider zu den Menschen die besser aus Beispielen oder durch Probieren lernen können als aus Büchern. Ich komme bei Büchern, gerade wenn es um Programmierung geht, nicht weiter als bis Seite 10, dann steht es meistens schon wieder im Regal. Ich probiere das jetzt seit 20 Jahren, es hat keinen Sinn. Wenn ich erst ein ganzes Handbuch lesen muß, endet es damit, daß ich mit Programmieren gar nicht erst anfange. Davon abgesehen ist das Adventure sowieso schon halb fertig. Mir fehlen nur noch 5 Räume, etwa 10 Objekte und ein bißchen Rätselcode. Es funktioniert alles so wie ich es haben will, und ich denke daß das mit der Schleife auch mein einziges aktuelles Problem lösen wird. Bei allem was noch kommt habe ich schon klare Vorstellungen wie es funktioniert. |
Geschrieben um 16:23 am 22.07.2005 | Zitat | Editieren | Löschen | |
Mitglied Student Gumby Beiträge: 37 | Ich habe es mit der ersten Möglichkeit hinbekommen. Sieht jetzt so aus wie ich es haben möchte. Vielen Dank nochmal für die Tipps. |