Hi Wizard,
no i mean "large use" of Textout, as a debug so that you can see how
anim is going, for example print on screen the AnimPos value
and see if it goes from 0 to AnimCount-1 correctly or not Sorry for my
bad english

About speed, this was discussed a lot in the past, I try to remember
everything in hope to help you (corrections are welcome of course!)

-Put a TimeBeginPeriod(1) inside you FormCreate event
-Set the Timer Interval at 1000/60 (that is 16 or somethin')
-Inside the Timer loop set Engine.DoMove(LagCount)
-Inside your sprites classes use, for ex: X = X + Speed*MoveCount

if you're using UnDelphiX to achive more speed be sure your main form
is declared as TDXForm and the DXDraw Options has do3D true.
WaitVBlank is up to you, i always turn it on even if it slow things down.

Last but not least, you don't need to code a custom constructor for your
class but inherit from TImageSprite that is more than enough. I try
to write something but don't take it as gold

[pascal]
type
TMyExplosionSprite = class(TImageSprite)
private
//... whatever you need
public
procedure DoMove(MoveCount: Integer); override;
end;

// when you need to create a new explosion, i think in some DoCollision event of any other sprite do

with TExplosionSprite.Create(Form.DXSpriteEngine.Engine ) do
begin
Image := Form.DXImageList.Items.Find('explosion');
Width := Image.PatternWidth;
Height := Image.PatterHeight;

X := XPos; //whatever...
Y := YPos; //whatever...
Z := ZPos; //whatever but above the other sprites

AnimCount := Image.PatternCount;
AnimSpeed := 0.06; //whatever...
AnimLooped:= True;

Visible := True;
end;

procedure TExplosionSprite.DoMove(MoveCount : Integer);
begin
inherited DoMove(MoveCount);

AnimLooped := True;
AnimSpeed := 0.06*MoveCount; //whatever...

// if AnimPos has reached the last frame
if (AnimPos >= ((AnimCount-1)-AnimSpeed*MoveCount) then Dead;
end;

[/pascal]

That, with the obvious needed corrections (i don't have delphi here so i wrote it by memory ops: ) should work, at least is similar to what i use
for games myself