Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Andorra 2D Kollision Frage (https://www.delphipraxis.net/138688-andorra-2d-kollision-frage.html)

sabbert 15. Aug 2009 00:02


Andorra 2D Kollision Frage
 
hey zusammen :),

Hab mal ne Frage, also :

ich habe testweise ein Sprite auf einen anderen zulaufen lassen.

Also z.B. eine Kugel(TImageSprite A ) auf eine Wand(TImageSprite B ).

Habe da eine Kollisionsabfrage, das wenn die Kugel auf etwas trifft und das vom Typ z.B. TWand ist etwas passiert.

Aber wenn ich mehrere Wände habe und ich z.B. will das die getroffene Wand zerstört,

wie kann ich die getroffene Wand herausfinden?

Wenn ich diese z.B. im Array hab

Delphi-Quellcode:
  AWand : Array[0..9] of TWand;

[...]

 
  //Dann soll z.B. nach der Kollision die getroffene Wand zerstört werden...
procedure TKugel.DoCollision(Sprite : TSprite);
begin
  if Sprite is TWand then
  begin
    AWand[x].dead; //Wobei x dann die getroffene ist, aber wie bekomme ich dieses x dann heraus?
  end;
end;

mfg

Vasco da Gama 15. Aug 2009 10:28

Re: Andorra 2D Kollision Frage
 
Versuch mal folgendes:
Delphi-Quellcode:
AWand : Array[0..9] of TWand;

[...]

 
  //Dann soll z.B. nach der Kollision die getroffene Wand zerstört werden...
procedure TKugel.DoCollision(Sprite : TSprite);
begin
  if Sprite is TWand then
  begin
    TWand(Sprite).dead; // das sollte funktionieren. Du zerstörst das getroffene Sprite,
                        // falls du etwas machen willst, dass du in TWand deklariert hast,
                        //solltest du TWand(Sprite) verwenden, sonst geht auch TWand.dead
  end;
end;

sabbert 15. Aug 2009 12:49

Re: Andorra 2D Kollision Frage
 
es scheint zu funktionieren :)

dankeschön für die Hilfe ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.

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