Sign in to follow this  
  • entries
    42
  • comments
    85
  • views
    46490

Entity Files

Sign in to follow this  

252 views

I've finally done away with the sprite data files and put the data directly in to the entity-XML file. Now the object type, name, collision model, image filenames and type info (diffuse, normal, etc), all the sprite animation data, and actions (sprite linkage) are all in one file for each entity. The original plan was to have separate collision, sprite, and entity data files in case objects needed to share resources. It was an attempt to be efficient and flexible (during my failed 3d project), but ultimately naive because I had no clue what the real needs would be. As it turns out, I need all the data for an entity to be in one file to keep things clean... my projects aren't huge.

I used to have the filename of the sprite-text file in the entity-XML, and would load it separately. The text file looked like this:


SEQUENCES 9
idle
FRAMES 2
timestep 400
PIVOTS 0
[(15 17) 0 0 32 32 ]
[(15 17) 32 0 32 32 ]
run
FRAMES 3
timestep 100
PIVOTS 0
[(15 17) 64 0 32 32 ]
[(15 17) 96 0 32 32 ]
[(15 17) 128 0 32 32 ]
duck
FRAMES 2
timestep 400
PIVOTS 0
[(15 17) 192 0 32 32 ]
[(15 17) 224 0 32 32 ]
... you get the idea




Now there's a data node in the XML file with child nodes for each sequence. I couldn't bear to put each little bit of data in it's own XML node, so I'm keeping the raw data in the same form as the text file. It looks like this:


"1.0" ?>
"ninja" type="4">

"ninjaBody">
"0.000" y="0.0" angle="0.000" />
static="0" sleeps="1" fixedRotation="0" mass="0.000" />
"ninjaCircle" type="0">
"0" density="0.700" friction="0.500" restitution="0.100" collisionProfile="2" />
"0.5" x="0.000" y="0.000" />


>

"ninja.png" type="0" />
"32" >
"idle" frames="2" timestep="400" pivots="0" >
[(15 17) 0 0 32 32 ]
[(15 17) 32 0 32 32 ]

"run" frames="3" timestep="100" pivots="0" >
[(15 17) 64 0 32 32 ]
[(15 17) 96 0 32 32 ]
[(15 17) 128 0 32 32 ]

"duck" frames="2" timestep="400" pivots="0" >
[(15 17) 192 0 32 32 ]
[(15 17) 224 0 32 32 ]

"slide" frames="1" timestep="0" pivots="0" >
[(15 17) 160 0 32 32 ]

"sword" frames="3" timestep="200" pivots="0" >
[(15 17) 0 32 32 32 ]
[(15 17) 32 32 64 32 ]
[(15 17) 96 32 64 32 ]

"throw" frames="2" timestep="200" pivots="0" >
[(15 17) 0 32 32 32 ]
[(15 17) 160 32 32 32 ]

"jump_up" frames="4" timestep="60" pivots="0" >
[(15 17) 0 64 32 32 ]
[(15 17) 32 64 32 32 ]
[(15 17) 64 64 32 32 ]
[(15 17) 96 64 32 32 ]

"jump_down" frames="2" timestep="200" pivots="0" >
[(15 17) 128 64 32 32 ]
[(15 17) 160 64 32 32 ]

"wall" frames="1" timestep="0" pivots="0" >
[(15 17) 224 64 32 32 ]









What's missing from the above are Action nodes that define how sequences link together in a complicated sprite. The Saga City robot had to link it's arms and torso to the legs sequence each time the action changed (idle to running, for instance).

The ninja described in the file above is the entity I'm using to experiment with gameplay feel. More on that soon.
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now