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