Hi everyone. My game is a SpaceFighter programmed with DelphiX. I followed Mr Farmer's advice and created a seperate class for the explosion, i.e.when my bullet hits my enemy the enemy image is replaced by an animated explosion:
Problem is that once the bullet hits the enemy the explosion animation runs perfectly but stops at the last image of the animation. This "last" image of the animation then stays on ths screen. How do I kill it? Explode.Dead kills it but then the animation does not run :-(Code://The explosion class TExplode = class(TImageSprite) public constructor Create(AParent: TSprite); override; end; Constructor TExplode.Create(AParent: TSprite); begin inherited Create(AParent); self.Image := Form1.DXImageList1.Items[form1.ExplodeImageIndex]; self.X := Enemy.X; self.Y := Enemy.Y; self.Width := Enemy.Image.Width; self.Height := Enemy.Image.Height; self.PixelCheck := False; self.AnimCount := Image.PatternCount; //self.AnimLooped:= True; self.AnimSpeed:= (60/1000) * UpdateSpeed; end; procedure TForm1.BulletCollision(Sender:TObject;var done:Boolean); begin if (sender is TEnemy) then begin Enemy := TEnemy(sender); if (not Enemy.Hit) then begin Explode := TExplode.Create(dxSpriteEngine1.Engine); Enemy.hit := true; Enemy.Dead; Bullet.Dead; Points := Points + 1000; EnemyCount := EnemyCount + 1; Enemy := TEnemy.create(dxspriteEngine1.Engine,dximageList1,EnemyLeftImageIndex); end; end else ...
Bookmarks