Neben den ganzen Übersetzungen habe ich die
Unit AdSprites erweitert. Und zwar ist es ja nicht sinnvoll in einer Engine nach Sprites zu suchen, sondern direkt in der Liste (so kann diese Funktionalität auch in Abkömmlingen verwendet werden). Deshalb habe ich der Klasse TSpriteList "GetSpritesAt" verpasst:
Delphi-Quellcode:
procedure TSpriteList.GetSpritesAt(ASpriteList: TSpriteList; const AX,
AY: Integer; const ASpriteClass: TSpriteClass);
var
i : Integer;
Rect : TAdRect;
begin
if Assigned(ASpriteList) then
begin
ASpriteList.Clear; // Standard ?
for i := 0 to Count - 1 do
begin
Rect := Items[i].BoundsRect;
if (AX >= Rect.Left) and (AX <= Rect.Right) and
(AY >= Rect.Top) and (AY <= Rect.Bottom) and
(Items[i] is ASpriteClass) then
begin
ASpriteList.Add(Items[i]);
end;
end;
end;
end;
Und dann das in der Engine dahingehend abgeändert, dass es wie ".Clear" bei einer ListView arbeitet indem es einfach das der Liste aufruft:
Delphi-Quellcode:
procedure TSprite.GetSpritesAt(const AX, AY: Integer; ASprites: TSpriteList;
AClass: TSpriteClass);
begin
Items.GetSpritesAt(ASprites, AX, AY, AClass);
end;
Da die andere Methode diese Aufruft muss diese nicht geändert werden.
MfG
xZise
PS: Diese Funktion basiert noch auf 0.4.5 (ich hoffe da gabs keine Änderung die dies nicht möglich machen).
PPS: Danke für die Lizenzinformationen.