[ t e x t f i r e . d e - Startseite ]

Sitemap
Druckversion


Ersatzteile

Ein Ledersessel

Sitzgelegenheiten sind meist keine besonders spektakulären Objekte. Trotzdem tauchen sie in vielen Adventures auf. Dieses Beispiel für Inform behandelt die wichtigsten Dinge, die man mit einem Sessel anstellen kann.

Object -> Sessel
with dekl 2, adj "schwer" "ledern",
    name "sessel" "ledersessel" "schwer" "ledern"
        "schwarz" "dick" "pseudoledern" "armsessel",
    initial "Die nördliche Wand des Zimmers wird von
        einem dicken, schwarzen Sessel eingenommen.",
    description "Ein gemütlicher schwarzer Sessel.",
    enter_text "in",    ! bei einem Stuhl kann man
                        ! dies in "auf" abändern...
    inside_description [;
        print_ret "Du entspannst dich gerade ",
            (string) self.enter_text," ",
            (dem) self, ".";
    ],
    react_before [;
        Go, Enter: if (player in self && noun ~= self)
            "Du solltest erst aufstehen, bevor du
            irgendwo hingehst.";
        Exit: if (player in self && noun ~= self &&
            noun ~= 0)
            "Du solltest erst aufstehen, bevor
            du irgendwo hingehst.";
    ],
    before [;
        PushDir: AllowPushDir();
            rtrue;
        Take: if (player in self)
            "Du sitzt doch gerade ",
                (string) self.enter_text," ",
                (dem) self, ".";
    ],
    after [;
        Enter: "Du setzt dich ",
            (string) self.enter_text," ",
            (den) self, ".";
        LookUnder: "Schatten!";
        Touch: "Das Leder fühlt sich furchtbar
            falsch an!";

    ],
has male static supporter enterable;

Der Sessel kann leicht zu einer Sitz-Klasse ausgebaut werden. Der enter_text erlaubt es dann, für jedes Objekt bequem anzugeben, ob der Spieler »in« oder »auf« ihm sitzt. Das Befühlen des Sessels sollte dann allerdings beim Objekt, nicht in der Klasse definiert werden.

Der hier beschriebene Quellcode ist für Inform 6.1 mit der deutschen Library von Toni Arnold.

03.06.2001, Max Kalus

 
[nach oben]