IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Glulx-kompatible cyoa.h?
AntwortenNeues ThemaNeue Umfrage

Glulx-kompatible cyoa.h?

Geschrieben um 17:00 am 05.07.2004 | Zitat | Editieren | Löschen
Clive
Mitglied
Bachelor Gumby
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 @read_char 1 -> key und den Save/RestoreGame-Routinen.

Geschrieben um 09:06 am 06.07.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Achtung, nicht getestet, aber probier einmal folgendes:


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.

Geschrieben um 16:17 am 06.07.2004 | Zitat | Editieren | Löschen
Clive
Mitglied
Bachelor Gumby
Beiträge: 60

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. :)

Geschrieben um 17:47 am 06.07.2004 | Zitat | Editieren | Löschen
Florian
Gast

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.

@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!

Geschrieben um 17:56 am 06.07.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

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.

Geschrieben um 23:40 am 06.07.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

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.

Geschrieben um 15:55 am 07.07.2004 | Zitat | Editieren | Löschen
Clive
Mitglied
Bachelor Gumby
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!

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz