next up previous contents index
Next: ,,...ein Strom, zu wässern Up: Schritt für Schritt ins Previous: ,,... allerlei Bäume, lustig

Subsections



Das Betreten des Rasens ist erlaubt

Im Garten Eden gibt es natürlich paradiesische Liegewiesen.

Object  Gras 
 with   short_name "Gras", 
        dekl 4, 
        description  
            "Starke, kurze Halme bilden einen dichten Grasteppich.  
             Allerlei Getier tummelt sich darin."; 
        before [; 
         take: "Du pflückst einen Grashalm, 
                auf dem ein Käfer sitzt. Du weißt nichts Rechtes 
                damit anzufangen und wirfst ihn wieder weg."; 
         LookUnder: "Es ist keine Falltür drunter."; 
        ], 
        after [; 
         enter: "Du streckst dich auf dem Gras aus. Es ist weich und 
                 angenehm."; 
         exit: "Du stehst wieder auf."; 
        ], 
        name 'Gras' 'Graeser' 'Halm' 'Wiese' 'Rasen' 'Heu' 'Boden'  
             'Teppich' 'Grasteppich' , 
        found_in Mitte EdenN EdenNW EdenSE EdenSW EdenNE EdenN  
                 EdenS EdenE EdenW, 
        capacity 100, 
   has  neuter scenery supporter enterable;

Begehbare Objekte

Dass man auf dem Gras liegen kann, bewirken die Attribute supporter und enterable:

Ein Objekt mit der Eigenschaft supporter kann mit anderen Objekten ,,belegt'' werden - man kann andere Objekte darauf tun21 - bis das mit capacity angegebene Fassungsvermögen erreicht ist - hier also 100 Objekte. (100 ist die Voreinstellung, so dass die Zeile hier schadlos weggelassen werden könnte. Für eine Liegewiese sind 100 Objekte ja kein Problem. Meist wird man realistischerweise einen niedrigeren Wert wählen.)

Ein Objekt mit der Eigenschaft enterable kann auch von der Spielerfigur betreten werden. Dass die Spielerfigur sich tatsächlich ins Gras legt (nicht nur draufsteigt oder sich daraufsetzt), ist nicht vorgegeben - diese Illusion bewirken einzig und allein die in der after-property angegebenen Texte für die Standardaktionen ##Enter und ##Exit.22

Schiebekulissen

Da das Gras überall gleich aussieht, reicht es völlig aus, im ganzen Spiel nur ein einziges Objekt dafür zu verwenden, das dem Spieler überall dorthin folgt, wo Gras wachsen sollte. Das Gras ist deshalb als Schiebekulisse (floating object) implementiert. Dafür sorgt die property found_in, in der die Namen aller dergestalt begrünten Räume des Spiels stehen. Betritt der Spieler einen neuen Raum, kontrolliert die Library alle found_in-properties und schiebt die benötigten Kulissen einfach hinterher.



Footnotes

... tun21
Wie wir im nächsten Abschnitt sehen werden, gibt es auch das Attribut container für Objekte, die andere Objekte enthalten können. Seltsamerweise gibt es kein vordefiniertes Attribut für Objekte, unter die man andere Objekte legen kann - obwohl in der überwiegenden Mehrzahl aller Spiele entscheidende Objekte (Schlüssel, Schriftrollen etc.) unter irgendwelchen anderen Objekten liegen.
... COLOR="#0000ff">##Exit.22
Die Inform-Syntax schreibt vor, den Namen von Aktionen zwei Gatter ## voranzustellen. Davon darf in vielen Fällen abgewichen und es kann der Name der Aktion ohne Gatter geschrieben werden: namentlich in Dispatcherroutinen wie before und after , im Direktaufruf der Aktion mit spitzer Klammer und in der Definition von Grammatikzeilen (siehe 2.13). Das führt praktisch dazu, dass man die Gatter kaum je verwenden muss.

next up previous contents index
Next: ,,...ein Strom, zu wässern Up: Schritt für Schritt ins Previous: ,,... allerlei Bäume, lustig
Frank Borger
2003-05-02