Okay.. let me explain :

A TSprite object has its own X and Y variabeles.
It also has a list of sub-sprites. This allows you to make a sprite-hierarchy. if you add a sub-sprite to a sprite, the subsprite's position (X,Y) is relative to the parent-sprite's position.
So if you move the parent-sprite, all it's childeren are also moved. The World X and Y are the actual world-coordinates of the sprite.
So if you use subsprites, the WorldX can be computed by adding the subsprite's X and the parent's X.
If you use a 'deeper' hierarchy with childeren who have childeren and grandchilderen etc the WorldX is the sum of the Sprite's X and it's parent's X, grandparent's X, etc.

The GetBoundsRect function is a function which returns the bounding rectangle for a sprite. Each sprite has it's own bounding rectangle.
The bounding rectangle depends on the sprite's position in the world, that's why we use World X and Y to define it in the function.
When checking collision, the sprite engine checks for bounding-rectangle-overlaps (but i think you already knew that ).

The code i gave you will make sure that only the bottom half of the sprite is covered by the bounding rectangle. I assume that the width and the height of the sprite are equal to the width and the height of the picture associated with the sprite. You must set these values explicitly when you create the sprite, if i'm not mistakin.

Humm... The z-drawing-order.. :think:

You could find this out yourself.. but i took some secs to analize the DelphiX source for you.
I assume that DelphiX first draws the sprites with a low Z value and then those with a high Z value.
But you should give this a try... plz, tell me the results :razz:

About the font..
I always used DXDraw.Surface.canvas.TextOut.
Use the DXDraw.Surface.Canvas.Font record to manipulate it's fontface, size, color etc..
This will suffice for basic text's.

Good luck... hope this was enough info.