Thema: Delphi DelphiX DoCollision

Einzelnen Beitrag anzeigen

Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#5

Re: DelphiX DoCollision

  Alt 30. Dez 2003, 11:35
Also ich habe jetzt eine Lösung gefunden, verstehe sie aber nicht

Ich habe eine neue Variable bShowCardSprite eingeführt, welche im DoCollision wie folgt gesetzt wird:

Delphi-Quellcode:
procedure TACard.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
  inherited;
  if (Sprite = MouseCursor) AND (Done<>true) then
  begin
    //beep;
    frmMain.DXSCARD.Items.Clear;
    frmMain.DXSCARD.Items.Add;
    frmMain.DXSCARD.Items[0].Picture.loadfromfile(MYPFAD+fed+'\small\'+fnummer+'.jpg');
    frmMain.DXSCARD.Items[0].Name:='scard';
     frmMain.DXSCARD.Items.Restore;
    CardSprite.Image :=frmMain.DXSCARD.Items.Find('scard');
    CardSprite.Width:=90;
    CardSprite.Height:=127;
    CardSprite.X:=50;
    CardSprite.Y:=300;
    CardSprite.Visible:=true;
    bShowCardSprite:=true;
    Done:=true;
   end
   else
    bShowCardSprite:=false;
end;
Im OnTimer steht dann:

Delphi-Quellcode:
procedure TfrmMain.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
 try
    DXDraw1.Surface.Fill( clwhite );
    ProcessGamestate;

    if bShowCardSprite=false then
      CardSprite.Visible:=false;

    DXSpriteENgine1.Dead;
    DXSpriteEngine1.Move(2);
    DXSpriteEngine1.Draw;
  except
    dxtimer1.Enabled:=false;
    messagedlg('An error has occurred',mterror,[mbok],0);
  end;
  dxdraw1.Flip;
end;
Und damit funktioniert es - ob es schön ist und warum es funktioniert, weiß ich nicht.

Gruß Kay
  Mit Zitat antworten Zitat