Wie schränke ich das Sichtfeld ein?

 [zurück]

Spiele der Serie "Zelda" werden euch sicherlich ein Begriff sein. Im SNES-Teil "Zelda - A Link to the past" gab es finstere Dungeons, in denen es keinerlei Lichtquelle gab. Link, der natürlich eine Laterne bei sich hatte, konnte nur einen Teil des Dungeons sehen, in dem er sich aufhielt. Hier ein Beispiel wie es sich das auf dem SNES darstellte:

Ihr seht hier Link (der Charakter mit der grünen Mütze) sowie einen hell erleuchteten Bereich. Um diesen hellen Bereich ist ein etwas dunklerer Bereich, ehe die vollkommene Schwärze kommt.

Für die gewisse Note in einem Spiel würde es sich doch anbieten, in den dunklen, unbeleuchteten Höhlen, Kellergewölben und sonstigen Räumlichkeiten, in denen es keinerlei Lichtquelle hat, das Sichtfeld eures Helden ebenfalls einzuschränken. Nur... wie stellt man so etwas an?

Schritt 1: Die Grafiken für die Sichtfeldeinschränkung

Hier kommt ihr definitiv nicht daran vorbei, selbst Hand bei der Grafikgestaltung anzulegen. Doch erst einmal braucht ihr ein Raster, das euch bei der Positionierung des Sichtfeldes helfen soll:

Hier seht ihr das Raster mit der Größe von 320x240 Pixeln. Die Grafik selbst ist 640x480 Pixel groß, auf dem Raster könnt ihr dann letztlich das Sichtfeld angeben. Wie, das bleibt letztlich euch überlassen

Soll das Sichtfeld, wie im oberem Bild auch, ein "Sichtkegel" sein, benötigt ihr vier (für jede Blickrichtung eine). Hier nun drei Pakete mit Beispielgrafiken:
 
Sichtkegel_1.zip Vier Grafiken für Sichtkegel, die das Blickfeld des Helden darstellen sollen.
Sichtkegel_2.zip Vier weitere Grafiken in Form von Sichtkegeln für das Blickfeld eures Helden; hierbei wurde an den Rändern der Sichtkegel ein kleiner Schatten eingebaut.

Je nach dem, ob das Blickfeld eures Helden als Kreis oder durch vier Sichtkegel dargestellt werden soll, hängt die weitere Bearbeitung ab. Daher folgen nun zwei weitere Bearbeitungsschritte...

Schritt 2: Das Sichtfeld...
  1. Begebt euch in eurem Maker-Projekt in die Data-Base, indem ihr die Taste [F8] drückt oder auf den Button mit der Tabelle klickt. Klickt hier die Registerkarte "Common Events" an und wählt im Listenfeld links eine freie Zahl aus, der ihr das Event für die Sichtfeldbegrenzung zuweisen wollt.
    Gebt dem Event im Feld "Name" einen Namen und wählt im Feld "Event Start Condition" die Option "Parallel Process".
    Setzt schließlich noch im Feld "Appearance Conditions Switch" das Häkchen im weißem Quadrat und wählt mit Klick auf den Button mit den drei Punkten einen freien Switch aus, dem ihr den Namen "Finstre Dungeons" gebt.
  2. Klickt im Feld "Events Commands" doppelt in die leere Zeile und wählt im darauf folgendem Fenster die erste Registerkarte und dort den Button "Change Variable".
    Wählt im Feld "Choose Variable(s)" die Option "One" und mit Klick auf den Button mit den drei Punkten eine freie Variable aus, der ihr den Namen "Held X" gebt.
    Wählt im Feld "Set" die Option "Set" und im Feld "Operand" die Option "Event". Wählt im erstem Drop-Down-Menü die Option "Hero" und im zweiten daneben die Option "Scene X", klickt dann auf OK.
  3. Wiederholt Punkt 2, nur dass ihr dort eine neue Variable wählt, der ihr den Namen "Held Y" gebt und anstelle der Option "Scene X" die Option "Scene Y" wählt.
  4. Klickt unter der letzten Variable doppelt in die leere Zeile und wählt im darauf folgendem Fenster die dritte Registerkarte und dort den Button "Fork Condition".
    Wählt im Feld "Conditions" die Option "Event". Im ersten Drop-Down-Menü daneben wählt ihr die Option "Hero", im zweiten die Option "Up". Setzt noch das Häkchen bei "Add ELSE-Case" und klickt auf OK.
  5. Über den Worten "ELSE Case" klickt ihr doppelt in die leere Zeile und wählt im darauf folgendem Fenster die zweite Registerkarte und dort den Button "Show Picture".
    Im Feld "Pic Number" wählt ihr die Option "1" aus. Im Feld "Select Picture" wählt ihr nun das Bild für den Sichtkegel nach oben aus.
    Wählt im Feld "Show Position" die Option "By Variable" und in den Feldern "X" und "Y" jeweils die Variablen für die Bestimmung von "Scene X" und "Scene Y" aus (in unserem Beispiel heißen die Variablen "Held X" und "Held Y").
    Lasst im Feld "Magnification" den Wert auf "100" und im Feld "Transparency" den Wert auf "0". Wählt noch als "Transparent Colour" die Option "Stir" und klickt auf OK.
  6. Unter den Worten "ELSE Case" legt ihr, wie unter Punkt 4, wieder eine Fork-Condition an, jedoch wählt ihr diesmal anstelle von "Up" die Option "Right".
  7. Erstellt über den Worten "ELSE Case" dieser Fork eine "Show-Picture-Funktion" nach Punkt 5, nur dass ihr anstelle des Sichtkegels für oben den Sichtkegel für rechts auswählt.
  8. Wiederholt unter den Worten "ELSE Case" Punkt 4, nur dass ihr anstelle von "Up" die Option "Down" auswählt und auf OK klickt.
  9. Über den Worten "ELSE Case" der eben erstellten Fork-Condition wiederholt ihr Punkt 5, nur dass ihr hier anstelle des Sichtkegels für oben den Sichtkegel für unten auswählt.
  10. Zuletzt erstellt ihr nach dem Schema von Punkt 4 eine Fork-Condition, nur dass ihr anstelle der Option "Up" die Option "Left" auswählt. Nehmt das Häkchen bei "Add ELSE Case" raus, bevor ihr auf OK klickt.
  11. Nun klickt ihr innerhalb dieser Fork-Condition doppelt in die leere Zeile und erstellt nach dem Schema von Punkt 5 eine Show-Picture-Funktion. Wählt dort anstelle des Bildes für den Sichtkegel oben das Bild für den Sichtkegel nach links und klickt auf OK.
    Hier noch ein Code-Beispiel für das Ergebnis...

Beachtet, dass ihr die Sichtfeldeinschränkung erst dann nutzen könnt, wenn der unter Punkt 1 gewählte Switch "Finstre Dungeons" auf ON gestellt wurde. Die Sichtfeldeinschränkung selbst sieht in Aktion wie folgt aus:


 [zurück]