Architecture:Map Object Format: Difference between revisions

From Adonthell
Jump to navigation Jump to search
Map object model definition
 
m Links and Categories added
Line 1: Line 1:
== Example Map Object Model ==
== Example Map Object Model ==


The following XML file describes a simple map object.
The following XML file describes a simple [[Architecture:Map Module#Map Objects|Map Object]] that has been [[Architecture:Base Module# Data Persistance|Serialized]].


   <?xml version="1.0"?>
   <?xml version="1.0"?>
Line 24: Line 24:
== Parameters of a Map Object ==
== Parameters of a Map Object ==


A Map Object has two components: the <tt>model</tt> part contains the 'physical' properties of the object, while the <tt>sprite</tt> part contains its graphical representation.  
A [[Architecture:Map Module#Map Objects|Map Object]] has two components: the <tt>model</tt> part contains the 'physical' properties of the object, while the <tt>sprite</tt> part contains its graphical representation.  


The <tt>model</tt> is composed from one or more states that correspond to separate animations in the <tt>sprite</tt>. Each state requires the following information:
The <tt>model</tt> is composed of one or more states that correspond to separate animations in the <tt>sprite</tt>. Each state requires the following information:


* '''The Bounding Box''' is a cube defined by <tt>length</tt>, <tt>height</tt> and <tt>size</tt>. Length and height specify the area occupied by a map object in map squares (40x40 pixel). Size is the object's height in pixels.
* '''The Bounding Box''' is a cube defined by <tt>length</tt>, <tt>height</tt> and <tt>size</tt>. Length and height specify the area occupied by a map object in map squares (40x40 pixel). Size is the object's height in pixels.
Line 32: Line 32:
* '''The Base Tile''' usually sits in the bottom right corner of a map object. It is used to determine drawing order when multiple objects occupy the same space on the map.  
* '''The Base Tile''' usually sits in the bottom right corner of a map object. It is used to determine drawing order when multiple objects occupy the same space on the map.  
* '''The Pixel Offset''' allows objects to be placed freely on the map, besides the underlying grid. Sensible values are in the range from 0 to 39.
* '''The Pixel Offset''' allows objects to be placed freely on the map, besides the underlying grid. Sensible values are in the range from 0 to 39.
[[Category:Development]]
[[Category:Architecture]]

Revision as of 01:27, 11 July 2007

Example Map Object Model

The following XML file describes a simple Map Object that has been Serialized.

 <?xml version="1.0"?>
 
   <list id="model">
     <string id="state">default</string>
     <list id="default">
       <u_int16 id="length">1</u_int16>
       <u_int16 id="height">1</u_int16>
       <u_int16 id="size">0</u_int16>
       <bool>0</bool>
       <bool>0</bool>
       <u_int16 id="x">0</u_int16>
       <u_int16 id="y">0</u_int16>
       <u_int16 id="x_off">0</u_int16>
       <u_int16 id="y_off">0</u_int16>
     </list>
   </list>
   <string id="sprite">data/gfx/map/ground/outside/grass/long-grass-tile.xml</string>
 

Parameters of a Map Object

A Map Object has two components: the model part contains the 'physical' properties of the object, while the sprite part contains its graphical representation.

The model is composed of one or more states that correspond to separate animations in the sprite. Each state requires the following information:

  • The Bounding Box is a cube defined by length, height and size. Length and height specify the area occupied by a map object in map squares (40x40 pixel). Size is the object's height in pixels.
  • The Collision Flags are used to turn collision mode individually on (0) or off (1) for each map square the object occupies. This is useful when dealing with objects that are not really square.
  • The Base Tile usually sits in the bottom right corner of a map object. It is used to determine drawing order when multiple objects occupy the same space on the map.
  • The Pixel Offset allows objects to be placed freely on the map, besides the underlying grid. Sensible values are in the range from 0 to 39.