Für jedes Maze müssen die foglenden Tags samt Parameter festgelegt werden.
- <HEADER Type=“MazeConfig“ />
- <MAZE … />
- <BORDER …/>
- optional ein Boden Objekt <COMPONENT … />
Die Maze-Definition hat eine vorgegebene Struktur, die eingehalten werden muss.
<?xml version="1.0" encoding="UTF-8"?>
<XML_PME_INTERFACE>
<HEADER Type="MazeConfig" />
<!-- Maze-Grund-Definition -->
<MAZE ... />
<!-- Außenwände -->
<BORDER ... />
<!-- Objektliste -->
<COMPONENT_LIST>
<!-- Der Boden -->
<COMPONENT ... />
<!-- Objekte -->
<COMPONENT ... />
</COMPONENT_LIST>
</XML_PME_INTERFACE>
<HEADER … />
Der Header hat nur einen Parameter mit einem festen Wert:
<HEADER Type=“MazeConfig“ />
<Maze … />
Im Maze-Tag werden die grundlegenden Parameter eines Mazes definiert. Dies sind:
- Name: Der Name des Mazes
Bsp.: Name=“MazeFirst“
Typ: Text - DimX, DimY und DimZ: Die Größe des Mazes
Bsp.: DimX=“30″ DimY=“4″ DimZ=“30″
Typ: Dezimalzahl - Levels: Aktuell nicht verwendet, muss immer den Wert eins (=“1″ ) haben
Bsp.: Levels=“1″
Typ: Zahl - Texture: Das Füllmuster des Bodens
Bsp.: Texture=“Textures/grass“
Typ: Verweis auf eine Textur, diese befinden sich in „Textures/“ - Repetition: Legt fest, wie häufig das Füllmuster auf dem Boden wiederholt wird.
Bsp.: Repetition=“10″
Typ: Zahl - ShowFloor: Legt fest, ob der Boden angezeigt werden soll. Wird ein Boden-Objekt definiert, was empfohlen wird, dann sollte ShowFloor=“false“ sein.
Bsp.: ShowFloor=“false“
Typ: Boolscher Wert (false oder true)
Wertebereich:- false: Nicht anzeigen
- true: Anzeigen
- UsersTask: Aufgabentext
Bsp.: UsersTask=“Es kann nur einen geben!“
Typ: Text
Beispiel:
<MAZE Name="MazeFirst" DimX="30" DimY="4" DimZ="30" Levels="1" Texture="Textures/grass"
Repetition="10" ShowFloor="false" UsersTask="Es kann nur einen geben!"
/>
<Border … />
Im Border-Tag wird das Aussehen der das Maze umgebenden Wände festgelegt. Hierbei wird das ausgwählte Objekt (z.B. Wand, Arcade) automatisch auf die gesamte Länge und Breite merfach verteilt, in dem über den PostDeltaX-Parameter der Versatz von einem Wandstück zum nächsten festgelgt wird.
- Variant: die Art und Weise, wie die Außenwände angeordnet werden sollen.
Bsp.: Variant=“Complete“
Typ: Aufzählung
Wertebereich:- Complete: das gesamte Maze mit der Wand umgeben
- PosDeltaX: Legt fest, um wieviel das Wandstück verschoben werden soll. Z.B. bei einer Arcade der Breite 6 sollte der Versatz 6 betragen. Ist dieser größer, dann werden zwischen den einzelnen Wandstücken Lücken entstehen.
Bsp.: PosDeltaX=“6.0″
Typ: Dezimalzahl - PosDeltaY: Nicht verwendet, muss Null (=“0″) sein
Bsp.: PosDeltaY=“0″
Typ: Dezimalzahl - PosDeltaZ: Nicht verwendet, muss Null (=“0″) sein
Bsp.: PosDeltaZ=“0″
Typ: Dezimalzahl - Scale. Der Vergrößerungsfaktor für das Objekt. Für Wandstücke ist dieser normalerweise 1.
Bsp.: Scale=“1.0″
Typ: Dezimalzahl - Model: Welches Objekt soll für die Außenwand verwendet werden. Bsp.: Model=“Models/Playground/Wall10″
Typ: Verweis auf das gewünschte 3D-Modell. Diese befinden sich standardmäßig in „Models/Playground/“. - Texture: Die Textur, mit der das Objekt überzogen wird.
Bsp: Texture=“Models/Playground/Textures/Wall“
Typ: Verweis auf die gewünschte Textur. Diese befinden sich standardmäßig in „Models/Playground/Textures/“.
Es können auch externe Bilder als Textur verwendet werden. In diesem Fall muss der Pfad zu dem Bild bzw. den Bildern angegeben werden. Soll nur ein Bild verwendet werden, dann muss der Pfad samt Dateinamen und Dateierweiterung angegeben werden.
Bsp.: C:\Bilder\MeinBild.jpg
Soll ein ganzes Verzeichnis mit Bildern angegeben werden, dann muss der Pfad samt Wildcard und Dateierweiterung angegeben werden.
Bsp.: C:\Bilder\*.jpg
Beispiel:
<BORDER Variant="Complete" PosDeltaX="10.0" PosDeltaY="0" PosDeltaZ="0" Scale="1.0"
Model="Models/Playground/Wall10" Texture="Models/Playground/Textures/Wall"
/>
Boden-Objekt <Component … />
Das Boden-Objekt ist optional, wird aber empfohlen. Es legt fest, welches 3D-Model und welcher Textur verwendet werden. Wird ein Boden-Objekt definiert, dann sollte im Maze-Tag der Parameter ShowFloor=“false“ gesetzt werden. Es können mehrere Boden-Objekte festgelegt werden. Boden-Objekte werden innerhalb der <COMPONENT_LIST> jeweils in einem <COMPONENT>-Tag definiert. Der Ursprung eines Base-Objekts befindet sich in der Mitte.
- Name: Name des Boden-Objektes.
Bsp.: Name=“Base1″
Typ: Text - Type: Der Typ des Objektes ist mit der Kennung „Base“ vorgegeben.
Bsp.: Type=“Base“
Typ: Aufzählung
Wertebereich:- Base: Bodenplatte
- Model: Welches Objekt soll für den Boden verwendet werden.
Bsp.: Model=“Models/Bases/Base60x60″ - Typ: Verweis auf das gewünschte 3D-Modell. Diese befinden sich standardmäßig in „Models/Bases/“. Es stehen 3D-Objekte mit Größen von 1×1 bis 200×200 in unterschiedlichen Abstufungen zur Verfügung.
- PosX: Position des Objektes auf der X-Achse
Bsp.: PosX=“0.0″
Typ: Dezimalzahl - PosY: Position des Objektes auf der Y-Achse
Bsp.: PosY=“-0.12″
Typ: Dezimalzahl - PosZ: Position des Objektes auf der Z-Achse
Bsp.: PosZ=“0.0″
Typ: Dezimalzahl - RotX: Drehung des Objektes entlang der X-Achse in Grad (°)
Bsp.: RotX=“0.0″
Typ: Dezimalzahl - RotY: Position des Objektes entlang der Y-Achse in Grad (°)
Bsp.: RotY=“90.0″
Typ: Dezimalzahl - RotZ: Position des Objektes entlang der Z-Achse in Grad (°)
Bsp.: RotZ=“0.0″
Typ: Dezimalzahl - PosDeltaX: Legt fest, um wieviel das 3D-Model in X-Richtung (Querachse) verschoben werden soll, wenn im Parameter „Repitition“ ein Wert größer 1 eingetragen ist.
Bsp.: PosDeltaX=“10.0″
Typ: Dezimalzahl - PosDeltaY: Legt fest, um wieviel das 3D-Model in Y-Richtung (Hochachse) verschoben werden soll, wenn im Parameter „Repitition“ ein Wert größer 1 eingetragen ist.
Bsp.: PosDeltaY=“0″
Typ: Dezimalzahl - PosDeltaZ: Legt fest, um wieviel das 3D-Model in Z-Richtung (Längsachse) verschoben werden soll, wenn im Parameter „Repitition“ ein Wert größer 1 eingetragen ist.
Bsp.: PosDeltaZ=“0″
Typ: Dezimalzahl - Scale: Mit dem Vergrößerungsfaktor kann das Objekt vergrößert bzw. verkleinert werden.
Bsp.: Scale=“2.5″
Typ: Dezimalzahl - Repitition: Die Anzahl der zu zeichnenden Objekte. Normalerweise 1.
Bsp.: Repitition=“3″
Type: Zahl - Texture: Die Textur, mit der das Objekt überzogen wird.
Bsp: Texture=“Models/Playground/Textures/Brick3″
Typ: Verweis auf die gewünschte Textur. Diese befinden sich standardmäßig in „Models/Playground/Texture/“ und in „Textures/“.
Es können auch externe Bilder als Textur verwendet werden. In diesem Fall muss der Pfad zu dem Bild bzw. den Bildern angegeben werden. Soll nur ein Bild verwendet werden, dann muss der Pfad samt Dateinamen und Dateierweiterung angegeben werden.
Bsp.: C:\Bilder\MeinBild.jpg
Soll ein ganzes Verzeichnis mit Bildern angegeben werden, dann muss der Pfad samt Wildcard und Dateierweiterung angegeben werden.
Bsp.: C:\Bilder\*.jpg
<COMPONENT Name="Base" Type="Base" Model="Models/Bases/Base60x60" PosX="0" PosY="-0.12"
PosZ="0" RotX="0" RotY="90" RotZ="0" PosDeltaX="0" PosDeltaY="0" PosDeltaZ="0" Scale="1.0"
Repetition="1" Texture="Models/Playground/Textures/Brick3"
/>