Autor |
Nachricht |
< Glulx-kompatible cyoa.h? |
|
Verfasst am:
Mo, 5 Jul 2004 - 16:00
|
|
|
Wasserträger
Anmeldungsdatum: 29.08.2002
Beiträge: 60
|
|
Hi, da melde ich mich mal wieder.
Meine Frage: Gibt es eine Glulx-kompatible Version der cyoa.h, der Library-Datei, die auf http://www.textfire.de zur Erstellung von Multiple-Choice-Adventures zur Verfügung steht?
Im Prinzip ist diese Datei ja ziemlich kurz, aber meine eigenen Versuche, sie entsprechend umzuschreiben, sind kläglich gescheitert. Hab noch nicht so den Durchblick bei Glulx.
Es hapert beim Ersetzen der Zeile Code: | @read_char 1 -> key | und den Save/RestoreGame-Routinen. |
|
|
|
|
|
Verfasst am:
Di, 6 Jul 2004 - 8:06
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Achtung, nicht getestet, aber probier einmal folgendes:
Code: |
key = KeyCharPrimitive(gg_mainwin, true);
|
Wenn das nicht klappt, können dir die z-Code- und Glulx-Versionen der Menüs in verblibm vielleicht einen Hinweis geben. _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Di, 6 Jul 2004 - 15:17
|
|
|
Wasserträger
Anmeldungsdatum: 29.08.2002
Beiträge: 60
|
|
Code: |
cyoa.h(11): Error: No such constant as "gg_mainwin"
cyoa.h(11): Error: No such constant as "KeyCharPrimitive"
|
Hab natürlich die Standard-Libs (außer infglk.h) nicht inkludiert, weil die sich mit cyoa.h nicht vertragen...
Dass so kein Glulx-Spiel möglich ist, fällt mir jetzt auch auf, aber um eine Glulx-Multiple-Choice-Library von Grund auf neu zu schreiben, fehlen mir die entsprechenden Kenntnisse, fürchte ich.
Es schien auf den ersten Blick so schön einfach. :) |
|
|
|
|
|
Verfasst am:
Di, 6 Jul 2004 - 16:47
|
|
|
|
Martin hat schon recht:
Zitat: | A new routine has been added to Glulx Inform, KeyCharPrimitive, which returns one character. (It replaces regular Inform's @read_char.) The character will be: a letter, number, function key (F1 - F12), or direction key (Home, etc.) (Constants for these special keys have been provided in infglk.h, so you can compare the character to them.) |
http://members.aol.com/doepage/glkdunces2.htm
Du solltest diese Routine in der Glulx Inform-Library heraussuchen und übernehmen.
Code: | @read_char 1 -> key |
macht ja nichts als einen Buchstaben von der Tastatur auf die Variable key zu schreiben. Das kann auch unter Glulx nicht so schwer sein...
Viel Erfolg! |
|
|
|
|
|
Verfasst am:
Di, 6 Jul 2004 - 16:56
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
Zitat: | Es schien auf den ersten Blick so schön einfach. |
Genau. Aber die cyoa.h benutzt natürlich nicht die Standard-Libs, die Konstante gg_mainwin und die Routine KeyCharPrimitive werden in parserm.h definiert. Da habe ich beim schnellen Posten aus der Hüfte nicht dran gedacht, entschuldige bitte.
Hmm, eine Standalone-Routine in Glulx für @read_char zu schreiben, ist wohl nicht ganz trvial. Glulx arbeitet mit Events, und man muss hier auch das Event "Taste gedrückt?" abwarten.
In Andrew Plotkins Game Author's Guide to Glulx Inform ist eine kurze Routine für "Bitte eine Taste drücken" angegeben, also quasi ein abgespecktes @read_char. Auch die Routine KeyCharPrimitive verliert vielleicht einiges an Bedrohlichkeit, wenn man einmal alle Debug-Zeilen herausschmeißt. Die Variable gg_mainwin, die vielleicht anders heißt, brauchst du ja sowieso beim Öffnen des Fensters in der Initialisierung. _________________ Every silver lining has a cloud. |
|
|
|
|
|
Verfasst am:
Di, 6 Jul 2004 - 22:40
|
|
|
Experte
Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München
|
|
So, nach etwas Herumgewerkel ist nun eine Biplattform-Beta-Version der CYOA-Lib verfügbar. Allerdings funktioniert unter Glulx das Abspeichern und Wiederherstellen von Spielständen (noch) nicht.
Edit: Abspeichern und Wiederherstellen von Spielständen ist jetzt implementiert. _________________ Every silver lining has a cloud.
Zuletzt bearbeitet von Martin am Do, 15 Jul 2004 - 8:28, insgesamt einmal bearbeitet |
|
|
|
|
|
Verfasst am:
Mi, 7 Jul 2004 - 14:55
|
|
|
Wasserträger
Anmeldungsdatum: 29.08.2002
Beiträge: 60
|
|
Ich bin sprachlos.
Vielen Dank für die Hilfe!
Dann werd ich mal versuchen, alle Änderungen nachzuvollziehen, um einen besseren Einblick in Glulx zu bekommen, und ein kleines Testspiel dazu schreiben.
Nochmal danke! |
|
|
|
|
|