Turnübungen gehören zum Glück zu den selteneren Rätseln in Textadventures. Dieses Reck illustriert aber ein wichtiges Feature von TAG, die Aktion Vorher - und wie sie helfen kann, etwas ausgefallene Situationen zu implementieren.
Der Spieler steht auf der Matte, unter dem Reck. Um es zu erreichen, muss er hochspringen. Wenn er dann an dem Reck hängt, kann er mit dem Befehl ZIEHE DICH HOCH einen Felgaufschwung probieren und bekommt einen Punkt dafür.
Diese Befehle sollten für den Anfang genügen. Da der Spieler in einer ganz speziellen Situation ist, wenn er am Reck hängt, definiere ich zudem eine spezielle Flagge hängend. Etliche Verben müssen nun in der VorAusf des Raumes abgefangen werden. Wer am Reck hängt, kann nicht mit Eingabe von INVENTAR seine Turnhose durchsuchen, nicht springen, und vielleicht vor Atemnot nicht reden!
Damit ich nicht jeden einzelnen Befehl abfangen muss, verwende ich die Aktion Vorher, die übernimmt, wenn die Flagge hängend gesetzt ist und das Verb nicht separat behandelt werden soll. Sie gibt dann einen Standard-Text aus: »Das kannst du nicht tun, während du am Reck hängst!«
Es folgt der vollständige Quellcode - inklusive Initialisierung, sodass das Ersatzteil wie es ist kompiliert und ausprobiert werden kann.
#STD 'tag.std'
Aktion Anfang
Ausf
Text '[f]Turnstunde[n]
[x]Ein Ersatzteil von Florian Edlbauer
(www.edlbauer.de)[x][x]'
GeheZu Turnsaal
EndeAusf
Flagge hängend 0 | Hängt der Spieler an etwas?
Bef hüpfen
Name 'hüpfen'
Verb 'hüpfe' 'springe' 'springe hoch'
Ausf
Text 'Du hüpfst wie ein Floh! Hoffentlich hat dich
niemand gesehen.'
EndeAusf
Bef springen
Name 'springen'
Verb 'springe' 'hüpfe' 'schwinge dich'
Syntax über dasObj
Ausf
Text 'Du könntest dir den Knöchel verdrehen.'
EndeAusf
Bef hochspringen
Name 'hochspringen'
Verb 'springe hoch' 'hüpfe hoch'
Syntax an demObj
Ausf
Text 'Du springst hoch und gewinnst so
für einen Sekundenbruchteil eine erhöhte
Perspektive auf [den aObj].'
EndeAusf
Bef ziehen
Name 'hochziehen'
Verb 'zerre heraus' 'ziehe heraus'
Verb 'ziehe raus' 'zerre raus' 'ziehe hoch'
Verb 'zerre hoch' 'ziehe' 'zerre'
Verb 'zerre herauf' 'ziehe herauf' 'stemme hoch'
Syntax dasObj
Ausf
Bed /(aObj Person)
'[Der aObj] wäre sicher nicht begeistert.'
Bed (aObj.Gew > MaxGew) oder (aObj Deko)
'Du kannst [den aObj] nicht weit ziehen.'
Text 'Es tut sich nichts.'
EndeAusf
Bef hochziehen_an
Name 'ziehen'
Verb 'ziehe hoch' 'ziehe hinauf' 'ziehe rauf'
Verb 'stemme hoch' 'stemme hinauf'
Syntax dasObj an demObj
Ausf
Bed (aObj = ich du)
'Du kannst grundsätzlich nur dich selbst an
etwas hochziehen.'
Text 'An [dem aObj2] kannst du dich nicht
hochziehen.'
EndeAusf
Obj Reck
Name 'Reck' n
Subst 'reck' n 'gerät' n
Attr fest
Erst ''
Besch 'Das Reck ist größer als du,
selbst wenn du die Arme ausstreckst.'
Ort Turnsaal
VorAusf
(springen)
Stop 'Das Reck ist größer als du. Aber wenn du
an ihm hochspringst, kriegst du vielleicht
die Stange zu fassen..'
(hochspringen)
Ausf hüpfen
Stop
EndeAusf
Raum Turnsaal
Name 'Im Turnsaal'
Besch 'Du stehst unter dem bedrohlich hohen Reck. Wenn
dir nicht wenigstens ein Felgaufschwung gelingt,
bist du durchgefallen - wegen Turnen!'
VorAusf
(lage) Wenn (hängend) dann
Stop 'Du hängst am Reck.'
Ende
(hüpfen)
Wenn /(hängend) dann
Text 'Du springst am Reck hoch und
bekommst die Stange zu fassen.
Du hängst jetzt am Reck.'
Setze hängend
Stop
Sonst
Text 'Du lässt dich zurück auf die
Erde fallen.'
Lösche hängend
Stop
Ende
(hochziehen_an)
Bed (hängend)
'Du scheinst nicht in der Situation zu sein,
in der du dich an etwas hochziehen könnest.'
Wenn (aObj2 = Reck) dann
Ausf ziehen
Ende
(ziehen)
Wenn (aObj = ich du) dann
Bed (hängend)
'Du kannst dich an nichts hochziehen!'
Text 'Du ziehst dich mit deinen Armmuskeln
hoch! Die Freude und die Kraft währen
nur kurz. Dann fällst du auf die weiche
Matte. Aber es hat gereicht, um nicht
durchzufallen![x][x]'
Lösche hängend
Punkte 1 1
Stop
Ende
Ende
EndeAusf
Aktion Vorher
Ausf
Wenn (hängend) dann
Wenn /(aBef = ziehen lage warten untersuchen) dann
Wenn /(aBef = hochziehen_an springen hüpfen) dann
Stop 'Das kannst du nicht tun, während du am
Reck hängst!'
Ende
Ende
Ende
EndeAusf
Damit ist das Reck funktionsfähig, aber noch lange nicht realistisch. Wer sich jetzt die Mühe macht, allerlei Befehle abzufangen und dem Spieler LASS DICH FALLEN, KLETTERE AUF DAS RECK und ähnlich naheliegende Dinge zu erlauben, wird sich nicht wundern, dass das eigentlich kurze Spiel Begegnung am Fluss 2300 Zeilen Code umfasst.
03.02.2002, Florian Edlbauer
|
 |
Fünf Unterschiedliche Ideen rund um ein Thema
Auftanken Kurzentwürfe für Abenteuer
Ersatzteile Fertige Objekte, Befehle und Räume für Abenteuer
Werkstatt Mechanik und Innenleben von Textadventures
Testfahrt Die Straßenlage deutscher Adventures
Grand Prix Der Textadventure- Wettbewerb
Abbiegen Lohnende Nebenstraßen
Intern Was textfire.de will, wer es macht und wie man mitmacht
|