Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra]: Zur Lauzeit erstelle Sprites finden (https://www.delphipraxis.net/124049-%5Bandorra%5D-zur-lauzeit-erstelle-sprites-finden.html)

franktron 13. Nov 2008 16:20

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Hast du den überhaupt deinen Sprite in items hinzugefügt ???

igel457 13. Nov 2008 16:46

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Folgendes sollte gehen:

Delphi-Quellcode:
var
  tmp_sprite: TSprite;
begin
  tmp_sprite := AdSpriteEngine.GetSpriteAt(X, Y);
  if (tmp_sprite <> nil) and (tmp_sprite is TMySprite) then
  begin
    ShowMessage('Buh!');
  end;
@frantron
Die Items werden automatisch in die Liste eingefügt

Spiderpig_GER_15 13. Nov 2008 18:03

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Lala, sorry :oops: :oops:

Es lag daran das die Koordinaten nicht auf Fenster umgerechnet waren.

Jetzt geht es:

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  If SpriteEngine.GetSpriteAt(X, Y) is TMySprite then
  begin
    showmessage('oops');
  end;
end;

Spiderpig_GER_15 13. Nov 2008 18:08

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Wenn ich schon was zu Sprites und auswählen gefragt hab, könnt ihr mir vielleicht ein weiteres Mal helfen?:

Delphi-Quellcode:
  TMySprite = class(TImageSpriteEx)
  protected
    procedure DoMove(TimeGap: double); override;
    procedure DoDraw; override;
    //    procedure DoCollision(Sprite: TSprite; var Done: boolean); override;
  public
    Info: String; // <=== Da will ich drauf zu greifen wenn ich auf die Sprite geklickt hab!
    procedure Klick;
    procedure GetInfo(Sender: TObject; var Key: Char);
    constructor Create(AParent: TSprite); override;
    destructor Destroy; override;
  end;
Ich möchte mit diesem Code die Sprite ermitteln auf die ich geklickt habe:

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  If SpriteEngine.GetSpriteAt(X, Y) is TMySprite then
  begin
    showmessage('oops');
  end;
end;
Und bei showmessage will ich den String Info von TMySprite ausgeben. Wie geht das?
So nicht:

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  If SpriteEngine.GetSpriteAt(X, Y) is TMySprite then
  begin
    showmessage(SpriteEngine.GetSpriteAt(X, Y).Info);
  end;
end;
MfG

Spiderpig

bigben37 13. Nov 2008 18:43

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Du musst das Sprite casten:
Delphi-Quellcode:
showmessage((SpriteEngine.GetSpriteAt(X, Y) as TMySprite).Info);

Spiderpig_GER_15 13. Nov 2008 19:18

Re: [Andorra]: Zur Lauzeit erstelle Sprites finden
 
Danke

Funktioniert Superb!

:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz