Hi there,

I'm building a 2d game with Delphi 6 and DelphiX. I can't seem to get it right to have a bitmap image rotating.

Here's my code for the Disk that's supposed to rotate:

Code:
// This is the Disk class
  TDisk = class(TImageSprite)
  private
  public
   Disk_Type : Word;
   constructor Create(AParent: TSprite); override;
   destructor Destroy; override;
   procedure DoMove(MoveCount: Integer); override;

  end;


// Disk Appearance table
 TSpriteClass = class of TSprite;

  TDiskAdvent = record
    Disk_Class: TSpriteClass;
    Disk_Type : Word;
    StartPos_X : Integer;
    StartPos_Y : Integer;
  end;


const
  DiskAdventTable: Array[1..5] of TDiskAdvent =
  (
    (Disk_Class: TDisk; Disk_Type: 1; StartPos_X:  -20; StartPos_Y:  -20),
    (Disk_Class: TDisk; Disk_Type: 1; StartPos_X:  -60; StartPos_Y:  -80),
    (Disk_Class: TDisk; Disk_Type: 1; StartPos_X: -100; StartPos_Y: -140),
    (Disk_Class: TDisk; Disk_Type: 1; StartPos_X: -140; StartPos_Y: -200),
    (Disk_Class: TDisk; Disk_Type: 1; StartPos_X: -180; StartPos_Y: -260));


var
  Form1: TForm1;
  Player: TPlayer;
  Lives: Integer;
  Seconds: Integer;
  Enimies: Integer;
  //Disks: Integer;
  Bomb : TBomb;
  Attacker: TAttacker;
  x_corner: boolean;
  y_corner: boolean;
  Disk_Start_No: Word;
  Disk_End_No  : Word;
  

implementation

 {$R *.DFM}
{$O+}


Constructor TDisk.Create(AParent: TSprite);
begin
inherited Create(AParent);

     Image := Form1.DXImageList1.Items.Find('Disk');
     Disk_Type := Form1.Disk_Type;
     Width := Image.Width;
     Height := Image.Height;
     PixelCheck := True;
     AnimCount := Image.PatternCount;
     AnimLooped:= True;
     AnimSpeed:= 15/1000;
end;

destructor TDisk.Destroy;
begin
  inherited Destroy;
end;


procedure TForm1.NewDisk;
var
    Disk : TSprite;
    I    : Integer;
begin
   Form1.Disk_No:= 0;

    for I:= Disk_Start_No to Disk_End_No do
      begin
        Disk_No:= form1.Disk_No + 1;
        Disk_Type := DiskAdventTable[I].Disk_Type;
        with DiskAdventTable[I] do
          begin
            Disk := Disk_Class.Create(Form1.DXSpriteEngine1.Engine);
            Disk.X:= random (600);
            Disk.Y:= StartPos_Y;
            Disk.Z:= 3;
          end;
      end;
end;



procedure TDisk.DoMove(MoveCount: integer);
begin
 inherited DoMove(MoveCount);

   if X >= Form1.DXDraw1.Width - Width then X_Corner:= TRUE;
   if X <10> Form1.DXDraw1.Height-100-Height then
   Y&#58;= -Height;

   if X_Corner = TRUE then X&#58;= X - 2;
   if X_Corner = FALSE then X&#58;= X + 2;

end;

"Disk_Start_No := 1;
Disk_End_No := 1;
NewDisk;" is called in the DXTimer event handler.


Thank you for your help.