Timers MMM-Seite
  Türen
 
V. Eine Tür... zu einem neuem Raum!

Ja, ich weiß... In diesem Starterpack sind alle Räume vorhanden.
Aber angenommen, ihr wollt einen neuen Ort zu Ronville hinzufügen, dann werdet ihr früher oder später an das Problem stoßen, dass ihr einen neuen Raum mit einer Tür einbauen müsst. Wie geht man das an? Also: Zuerst müsst ihr ein Hintergrundbild (320*200 Pixel) malen, auf dem eine geschlosse Tür zu sehen ist. Geht in den Room editor und erstellt ganz oben unter dem Menüpunkt "room" einen neuen Raum.Dann geht ihr dort noch einmal hin und wählt "import background". Dort wählt ihr euer neu gezeichnetes Bild. So. Den Hintergrund hätten wir. Jetzt müssen wir bestimmen, wo der Character den überall hinlaufen darf/kann. Dafür geht ihr wieder unter "Areas" und wählt anstatt den Hotspots "walkable areas" aus. Jetzt zeichnet ihr den begehbaren Bereich in das Bild. Vielleicht gibt es in eurem Raum ja auch Bereiche, hinter die Bernard laufen muss (z.B. eine Säule mitten im Bild). Dafür wählt ihr, wieder in dem Kästchen, wo ihr vorher die Walkable areas gewählt habt, "Walk behinds" aus und zeichnet die Walk behinds in das Bild ein. Gut. Das wären dann wohl die Grundlagen des Raumes. Speichert ihn nun. (Menüpunkt room: "save room") unter dem Namen roomX.crm (ersetzt das "X" durch die Nummer des Raums. Jetzt haben wir einen neuen Raum!
Zurück zur Tür... Um die Tür öffnen zu können, brauchen wir ein Bild von der Tür im offenen Zustand. Malt sie so, importiert das Bild als Sprite und erstellt ein Objekt damit. Zeichnet dann einen Hotspot über die Tür. Ihr öffnet die Interaction Seite des Hotspots und erstellt ein "run script" bei "any click on hotspot". In dieses schreibt ihr:

if (any_click_on_door (13, 4, 125, 130, DIR_UP, 14, 125, 130, DIR_DOWN) == 0) Unhandled ();


any_click_on_door Das normale Türenscript
(13,... Eine Variable, die sagt, ob die Tür offen ist oder nicht. Für jede Tür muss eine andere Variable verwendet werden. Die Variablen von 1-12 sind im Bernard-Starterpack bereits verwendet.
...,4, ... Die Nummer des Objekts mit der offenen Tür
..., 125, ... Die X-Koordinate der Tür
..., 130, ... Die Y-Koordinate der Tür
..., DIR_UP, ... Die Richtung in die Bernard schauen soll, wenn er bei der Tür angelangt ist
..., 14, ... Die Nummer des Raums, in dem Bernard ankommen soll
..., 125, ... Die X-Koordinate der Tür im nächsten Raum
..., 130, ... Die Y-Koordinate der Tür im nächsten Raum
..., DIR_DOWN) Die Richtung, in die Bernard schauen soll, wenn er im nächsten Raum angekommen ist
== 0 Gehe in den nächsten Raum, wenn als Aktion "Gehe zu" benutzt wird.
Unhandled () Der schon bekannte Befehl für dann, wenn keine Aktion geplant ist

Das gleiche machen wir mit der Tür im nächsten Raum und dann haben wir eine funktionierende Verbindung zwischen zwei Türen!
Fehlt nur noch die Möglichkeit, die Tür mit der rechten Maustaste öffnen und schließen zu können. Dafür nennen wir den Hotspot "Tür>v" und gehen nach oben (ganz oben, neben "File" und "Game") auf die Schaltfläche "script" und öffnen dort das "Global script".
Im Global script suchen wir nach der function "VariableExtensions".
Wir können da eine lange Liste sehen. Ganz unten in diese Liste schreiben wir unter die letzte Zeile (else if ((r == 11) && (h == 3))):

else if ((r == 13) && (h == 1)) OpenCloseExtension (13, location);

r == 10 Abfrage, ob man sich im Raum 10 befindet (ersetzt 10 durch die Nummer eures Raums)
&& und (die Nächste Bedingung muss auch erfüllt werden)
h == 1 Abfrage, ob sich die Maus auf dem Hotspot 1 befindet (wieder durch die eigene Nummer ersetzen)
OpenCloseExtension Die Funktion, um die Tür zu öffnen, wenn sie zu ist und sie zu schließen, wenn sie offen ist
(13, ... Die Nummer der Variable (Des GlobalInts) der Tür
..., location) Ehm... weiß nicht. Kann uns eigentlich egal sein. Schreibt dort einfach immer "location" rein und es müsste funktionieren.

Wenn wir das erledigt haben, kann man die Tür mit dem Hotspot 1 im Zimmer 13 mit der rechten Maustaste öffnen und schließen. Wenn wir dasselbe mit der Tür im nächsten Raum gemacht haben, sind wir endgültig fertig...
 
  MMM ist ein freies Fanprojekt basierend auf Maniac Mansion von LucasArts - AGS ist von Indiana Chris Jones  
 
Diese Webseite wurde kostenlos mit Homepage-Baukasten.de erstellt. Willst du auch eine eigene Webseite?
Gratis anmelden