Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [DelphiX] GetSpriteAt ungenau? JA! und zwar deswegen: ... (https://www.delphipraxis.net/72917-%5Bdelphix%5D-getspriteat-ungenau-ja-und-zwar-deswegen.html)

Neutral General 9. Jul 2006 10:51


[DelphiX] GetSpriteAt ungenau? JA! und zwar deswegen: ...
 
Hi,

Wer sich schon immer gefragt hat warum GetSpriteAt nicht richtig funktioniert:

Delphi-Quellcode:
function TSprite.GetSpriteAt(X, Y: Integer): TSprite;

  procedure Collision_GetSpriteAt(X, Y: Double; Sprite: TSprite);
  var
    i: Integer;
    X2, Y2: Double;
  begin
    if Sprite.Visible and PointInRect(Point(Round(X), Round(Y)), Bounds(Round(Sprite.X), Round(Sprite.Y), Sprite.Width, Sprite.Width)) then // Was fällt euch in dieser if-Abfrage auf ??!! -.-^^
    begin
      if (Result=nil) or (Sprite.Z>Result.Z) then
        Result := Sprite;
    end;

    X2 := X-Sprite.X;
    Y2 := Y-Sprite.Y;
    for i:=0 to Sprite.Count-1 do
      Collision_GetSpriteAt(X2, Y2, Sprite.Items[i]);
  end;

var
  i: Integer;
  X2, Y2: Double;
begin
  Result := nil;

  X2 := X-Self.X;
  Y2 := Y-Self.Y;
  for i:=0 to Count-1 do
    Collision_GetSpriteAt(X2, Y2, Items[i]);
end;
Und? Klingelts ?
Wenn man sowas wie DelphiX programmiert dann sollten aber so grobe Fehler nicht passieren find ich :wall:

Gruß
NeutralGeneral

Cicaro 10. Jul 2006 11:22

Re: [DelphiX] GetSpriteAt ungenau? JA! und zwar deswegen: ..
 
Wohl falsche Version an der falschen Stelle heruntergeladen, oder ? :lol:

Jo, hab' auch schon ein Paar Änderungen an den Klassen vorgenommen.

Lustig find' ich auch noch das Sprite-Attribut "deaded" ... :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 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