Einzelnen Beitrag anzeigen

Phill

Registriert seit: 18. Dez 2008
11 Beiträge
 
#3

Re: [Andorra2D] Löschen von Sprites

  Alt 26. Jan 2009, 16:41
Hallo Codewalker. Danke für den Tipp, nur habe ich den Befehl bereits probiert und habe folgendes Problem: wenn ich ein Sprite mehrfach verwende:

ShopGegner := TImageSprite.Create(adSpriteengine); with ShopGegner do begin x:=100; z:=22; end;
ShopGegner := TImageSprite.Create(adSpriteengine); with ShopGegner do begin x:=200; z:=22; end;
ShopGegner := TImageSprite.Create(adSpriteengine); with ShopGegner do begin x:=300; z:=22; end;
(er malt nun ein Bild an drei verschiedene Stellen

Nun löscht AdSpriteengine.items.remove(shopgegner) nur den letzten Sprite, also den bei x:=300, die andern bleiben erzahlten.

Das ist Problem nummer 1 und garnicht mal so schlimm, schlimmer ist jedoch das die meißten Sprites in Klassen zusammgefasst sind:

TGegner1 = class(TImageSprite) XSpeed,YSpeed,HP,AP:integer;
private protected procedure DoMove(TimeGap:double);override;
procedure DoShoot(Sprite: TSprite);
public constructor Create(AParent:TSprite);override; end;

AdSpriteengine.items.remove(TGegner1) geht leider nicht, ich weiß auch nicht wie ich die einzelnen Sprites der klasse anspreche



edit:

also ich seh grad mit viel mühe und schreib und rechenaufwand könnte man mein problem via form1.AdSpriteEngine.Items.Remove(Adspriteengine.G etSpriteAt(x,y)); lösen, aber das ist eigentlich nicht optimal, würde mich freuen wenn mir wer weiter hilft
  Mit Zitat antworten Zitat