XML Spezifikation für einen Raum

silentEngine
Verfügbare Informationen zu "XML Spezifikation für einen Raum"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Heather
  • Forum: silentEngine
  • Forenbeschreibung: Adventure im Silent Hill Style
  • aus dem Unterforum: Spezifikationen
  • Antworten: 10
  • Forum gestartet am: Donnerstag 17.08.2006
  • Sprache: deutsch
  • Link zum Originaltopic: XML Spezifikation für einen Raum
  • Letzte Antwort: vor 17 Jahren, 4 Monaten, 12 Tagen, 11 Minuten
  • Alle Beiträge und Antworten zu "XML Spezifikation für einen Raum"

    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 21:19

    XML Spezifikation für einen Raum
    Aufbau einer XML Datei für Räume.

    Generell gilt:
    keine Umlaute benutzen
    nach Möglichkeit alles klein schreiben (Namen, Varaiblen usw)
    Statt < im Script &lt; verwenden
    Statt > im Script &gt; verwenden



    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 22:27


    Grundaufbau
    Code:<?xml version="1.0" encoding="ISO-8859-1" ?>
    <room>
       <events>
       </events>
       <background image="test.jpg" blend="solid"/>
       <parallax>
          <layer name="back" image="parallax.jpg"/>
       </parallax>
       <objects>
       </objects>
       <sounds>
       </sounds>
       <blocks>
       </blocks>
       <actions>
       </actions>
       <chat>
       </chat>
    </room>
    <room> - Hauptzweig; beinhaltet Raumname, Angaben zur Perspektive, Kolorierung, Spieler sichtbar oder nicht
    <events> - Raum Events wie OnInit, OnEnterm OnExit, OnClick, OnUpdate
    <background> - Hintergrund; Bild das als Hintergrund verwendet werden soll, Blendmode (Solid, Alpha, Shade, Light)
    <objects> - Objekte für Vordergrund, Hintergrund oder Kulissenobjekte
    <sounds> - Alle Sounds die innerhalb des Raums genutzt werden können
    <blocks> - Blöcke für Wege auf denen sich Charaktere bewegen können
    <actions> - Aktionsbereiche die angeklickt werden wodurch Scripte ausgelöst werden
    <chat> - Texte und Script für Unterhaltungen mit anderen Charakteren



    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 22:27


    Room Hauptzweig
    Code:<room name="cafe" perspectivenearest="451" perspectivefarest="595" perspectivefactor="1000" perspectiveoffset="0" red="255" green="255" blue="255" playervisible="true">

    name - Name des Raums; muss eindeutig sein
    perspectivenearest - Nahester Punkt an dem die Charaktere in voller Größe angezeigt werden
    perspectivefarest - Entferntester Punkt an dem die Charaktere am Kleinsten angezeigt werden
    perspectivefactor - Faktor der die Größe der Charaktere bestimmt
    perspectiveoffset - Offset um die Größe der Charaktere zu verfeinern
    red - Rotwert für die Kolorierung (Standard 255)
    green - Grünwert für die Kolorierung (Standard 255)
    blue - Blauwert für die Kolorierung (Standard 255)
    playervisible - Spieler sichtbar oder nicht (True/False). False verwenden wenn es sich z.B. um eine Detailansicht handelt



    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 22:28


    Events Zweig
    Events des Raum die zu verschiedenen Zeitpunkten ausgeführt werden. Innerhalb der Unterzwiege können beliebige Scripte hineingeschrieben werden.
    Code:   <events>
          <OnInit>
             int.set("dooropen", 0)
          </OnInit>
          <OnEnter>
             if int.get("musicplaying")==0 then
                music.iplay("sd_363.ogg")
                int.set("musicplaying", 1)
             end
          </OnEnter>
          <OnExit>
             -- Script code
          </OnExit>
          <OnClick>
             -- Script code
          </OnClick>
          <OnClickChar>
             -- Script code
          </OnClickChar>
          <OnUpdate>
             -- Script code
          </OnUpdate>
       </events>
    <OnInit> - Wird einmalig ausgelöst wenn der Raum geladen wird
    <OnEnter> - Wird ausgelöst wenn der Spieler den Raum betritt
    <OnExit> - Wird ausgelöst wenn der Spieler den Raum verlässt
    <OnClick> - Wird ausgelöst wenn der Spieler mit der Maus auf den Raum klickt (egal ob auf eine Action, einen Wegpunkt oder sonstwo hin)
    <OnClickChar> - Wird ausgelöst wenn der Spieler mit der Maus auf einen Charakter klickt (ausgenommen sich selber)
    <OnUpdate> - Wird ausgelöst wenn die Hauptschleife der Engine einmal durchlaufen wurde, also mehrmals in der Sekunde (je nach Rechnerleistung)



    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 22:28


    Background Zweig
    Einstellungen für die Hintergrundgrafik.
    Code:<background image="test.jpg" blend="solid"/>
    image - Das Bild welches verwendet werden soll. Muss sich im selben Ordner wie die XML Datei befinden. Am Besten JPG und PNG verweden
    blend - Blendmode der für das Bild verwendet werden soll (Solid, Alpha, Shade, Light)

    Parallax Zweig
    Erstellen von parallax Layern um z.b. Nebel, Regen oder generell bewegte Hintergründe zu erstellen.

    Code:<parallax>
        <layer name="back" image="parallax.jpg" blend="solid" xspeed="0" yspeed="-0.1" autoscroll="true"/>
    <parallax>

    name - front oder back; back = Layer hinter dem eigentlichen Hintergrund; front = vor allem anderen (Charakter, Objekte usw.)
    image - Das Bild welches verwendet werden soll. Muss sich im selben Ordner wie die XML Datei befinden. Am Besten JPG und PNG verweden
    blend - Blendmode der für das Bild verwendet werden soll (Solid, Alpha, Shade, Light)
    xspeed - Float Wert um den sich der Layer auf der X-Achse verschieben soll
    yspeed - Float Wert um den sich der Layer auf der Y-Achse verschieben soll
    autoscroll - Wenn true dann scrollt der Layer automatisch um xspeed und yspeed. Z.B. um Regen oder Nebel zu simulieren



    Re: XML Spezifikation für einen Raum

    Heather - 21.08.2006, 22:28


    Objects Zweig
    Objekte für Vordergrund, Hintergrund oder Kulissenobjekte
    Code:   <objects>
          <object id="1" name="vordergrund" image="vordergrund.png" x="0" y="446" blend="alpha" alpha="1" xhandle="40" yhandle="50"/>
          <object id="2" name="mirrow" x="578" y="196" blend="solid" visible="true" alpha="1" rotation="45.352" scalex="1.234" scaley="0.34" type="kulisse" midhandle="true">
             <animations image="mirrow.png" framewidth="77" frameheight="225" firstframe="0" framecount="12">
                <animation name="normal" startframe="0" endframe="0" stopframe="0" speed="100"/>
                <animation name="break" startframe="0" endframe="11" stopframe="11" speed="100"/>
                <animation name="broken" startframe="11" endframe="11" stopframe="11" speed="100"/>
             </animations>
          </object>
       </objects>
    id - Eindeutige, vortlaufende Nummer zur Identifizierung
    name - Eindeutiger Name zur Identifizierung
    image - Das Bild welches benutzt werden soll. Muss sich im selben Ordner wie die XML Datei befinden.
    x - X-Position des Objekts
    y - Y-Position des Objekts
    blend - Blendmode der für das Bild verwendet werden soll (Solid, Alpha, Shade, Light)
    alpha - Alphawert für das Objekt (0=durchsichtig; 1=voll sichtbar; 0.5=halb transparent; alle Fließkomma-Werte von 0-1 erlaubt)
    rotation - Drehwinkel (0-360)
    scalex - X-Skalierung (1=normal; 2=Doppelte Größe) alle Fließkomma-Werte erlaubt
    scaley - Y-Skalierung (1=normal; 2=Doppelte Größe) alle Fließkomma-Werte erlaubt
    type - Typ des Objekts. Normal oder Kulisse. Bei Normla wird das Objekt vor den Charakteren gezeichnet. Bei Kulisse je nach Position des Charakters vor oder hinter ihm. Kann verwendet werden um Bereiche zu schaffen um die sich Charaktere herum bewegen können. Der Charakter befindet sich hinter dem Objekt wenn sein Y Wert kleiner ist als der es Objekts. Oft muss dazu noch das yhandle des Objects angepasst werden. Siehe weiter unten (Standard: Normal)
    xhandle - X-Zeichenpunkt des Objekts setzen
    yhandle - Y-Zeichenpunkt des Objekts setzen
    midhandle - True/False wenn True wird der Mittelpunkt (Zeichenpunkt) genau auf die Mitte des Objekts gesetzt. xhandle und yhandle haben keine Auswirkung mehr wenn midhandle True ist
    visible - Objekt sichtbar oder nicht True/False

    Unterzweig Animations
    Über diesen optionalen Zweig können Objekte mit Animationen erstellt werden.

    Code:<animations image="mirrow.png" framewidth="77" frameheight="225" firstframe="0" framecount="12">
        <animation name="normal" startframe="0" endframe="0" stopframe="0" speed="100"/>
        <animation name="break" startframe="0" endframe="11" stopframe="11" speed="100"/>
        <animation name="broken" startframe="11" endframe="11" stopframe="11" speed="100"/>
    </animations>

    image - Das Bild welches für die Animation verwendet werden soll. Muss sich im selben Ordner wie die XML Datei befinden.
    framewidth - Die Breites eines Frames
    frameheight - Die Höhe eines Frames
    firstframe - Das erste Frame (sollte immer 0 sein)
    framecount - Anzahl der Frames

    Animation
    Definiert eine Animation.

    name - Eindeutiger Name zur Identifizierung
    startframe - Das Frame bei dem die Animation anfängt
    endframe - Das Frame bei dem die Animation aufhört
    stopframe - Das Frame das angezeigt wird wenn die Animation angehalten wird
    speed - Die Geschwindigkeit in Millisekunden in der die einzelnen Frames wechseln



    Re: XML Spezifikation für einen Raum

    Heather - 19.11.2006, 14:27


    Sounds Zweig
    Definiert Sounds die abgespielt werden können.

    Code:<sounds>
        <sound id="1" name="fahrstuhl" file="fahrstuhl.ogg"/>
        <sound id="2" name="fahrstuhl-open" file="fahrstuhl-open.ogg"/>
    </sounds>

    id - Eindeutige Nummer
    name - Eindeutiger Name
    file - Sounddatei. Muss sich entweder in selben Order wie die XML Datei, oder im sfx Ordern befinden. Am Besten nur OGG Dateien verwenden, es geht aber auch WAV. MP3 geht momentan nicht.



    Re: XML Spezifikation für einen Raum

    Heather - 19.11.2006, 14:34


    Blocks Zweig
    Definiert Bereiche, sogenannte Blöcke, auf denen sich Charaktere bewegen können.

    Code:<blocks>
        <block id="1" x="0" y="26"/>
        <block id="2" x="0" y="27"/>
        <row>45</row>
        <col>23</col>
        ...
    </blocks>

    id - Eindeutige Nummer
    x - X Position des Blocks
    y - Y Position des Blocks

    Mit ROW und COL können ganze Zeilen oder Reihen als begehbar markiert werden um so nicht jeden Block einzelnt aufführen zu müssen.



    Re: XML Spezifikation für einen Raum

    Heather - 19.11.2006, 14:35


    Actions Zweig
    Definiert Actions, Bereiche auf die draufgeklickt werden kann und darauf ein Script ausgeführt wird.

    Code:<actions>
       <action id="1" name="elevator" text="Fahrstuhl">
          <area>
             <point x="165" y="217"/>
             <point x="261" y="211"/>
             <point x="261" y="379"/>
             <point x="171" y="377"/>
          </area>
          <events>
             <OnClick>
                -- Beliebiges Lua Script
             </OnClick>
             <OnDblClick>
                -- Beliebiges Lua Script
             </OnDblClick>
          </events>
       </action>
    </actions>

    id - Eindeutige Nummer
    name - Eindeutiger Name
    text - Text der angezeigt wird wenn man mit der Maus über die Action fährt

    Area Unterzweig
    Definiert über einzelne Punkte die Fläche der Action. Alle Punkte werden nacheinander verbunden sodass ein Polygon entsteht. Dies ist dann der Klickbare Bereich.

    x - X Wert des Punktes
    y - Y Wert des Punktes

    Events Unterzweig
    Es gibt die Events OnClick und OnDblClick. Hier kann ein beliebiges Lua Script hineingeschrieben werden. Dieses wird dann ausgeführt wenn man auf die Action draufklickt bzw Doppelklickt.



    Re: XML Spezifikation für einen Raum

    Heather - 17.12.2006, 15:41


    Chat Zweig
    Definiert Gruppen welche wiederum Textzeilen enthalten die für Gespräche zwischen dem EGO und einem Charakter benutzt werden können.

    Code:   <chat>
          <group id="1" name="gruppe1">
             <lines>
                <line id="1" active="false">
                   <text>Hallo ich bin deine Mudda.</text>
                   <script>
                      char.say("me","Hallo ich bin deine Mudda.")
                   </script>
                </line>
                <line id="2">
                   <text>Und tschüss.</text>
                   <script>
                      chat.stop()
                   </script>
                </line>
             </lines>
          </group>
          <group id="2" name="gruppe2">
             <lines>
                <line id="1">
                   <text>Das ist komisch</text>
                   <script>
                      char.say("me","Das ist komisch")
                      char.say("bernard","Was ist komisch?")
                      char.say("me","Na das alles hier")
                   </script>
                </line>
                <line id="2">
                   <text>Ich und Du, Müllers Kuh.</text>
                   <script>
                      char.say("me","AGGAGAGAGA")
                   </script>
                </line>
             </lines>
          </group>
       </chat>

    Group Unterzweig
    Definiert eine Gruppe welche Textpassagen enthält.

    ID - Eindeutige Nummer
    Name - Eindeutiger Name der Gruppe

    Line Unterzweig
    Repräsentiert eine Zeile die der Spieler wärend des Gesprächs auswählen kann.

    active - True/False; Bei False ist die Zeile nicht sichtbar und kann so auch nicht ausgewähöt werden. Standard = True

    Text Unterzweig
    Der Text der dem Spieler angezeigt wird

    Script Unterzweig
    Beliebiges Script was beim Auswählen des Textes ausgeführt wird



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum silentEngine



    Ähnliche Beiträge wie "XML Spezifikation für einen Raum"

    23-04-05 - "raum e # 10 : 10 jahre e-gruppe berlin" - 140bpm (Donnerstag 14.04.2005)
    Gyroiden im Raum - Alina (Montag 21.01.2008)
    Raum der Wünsche... - Draco Malfoy (Dienstag 24.10.2006)
    Raum der Wünsche - Albus Dumbledore (Samstag 17.06.2006)
    Der RAUM - Begriff - kirana (Mittwoch 17.05.2006)
    Raum ist da HausBadenwürttemberg 3-4 Januar beginn 11 Uhr - Sith (Freitag 23.12.2005)
    Raum Berlin - supermann (Donnerstag 19.10.2006)
    Der Raum der Gütigen Mutter - Ame to Yume (Samstag 08.04.2006)
    Raum Stuttgart oder Heilbronn - UmmSamiha (Samstag 05.08.2006)
    Schrauber im Raum Essen - rotauge (Samstag 04.06.2005)