Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#871

Re: Andorra 2D [Ver. 0.4.5.1, 31.12.08]

  Alt 1. Jan 2009, 15:30
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.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat