Einzelnen Beitrag anzeigen

Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#3

Re: [Andorra 2D] TPhysicalBoxSprite bei X=0 unsichtbar

  Alt 15. Nov 2008, 13:36
Problem gefunden: In der Unit AdSprites.TImageSpriteEx muss folgender Codeblock ausgetauscht werden:

Delphi-Quellcode:
procedure TImageSpriteEx.DoDraw;
begin
  if FImage <> nil then
  begin
    FImage.Color := FColor;
    if Alpha <> 255 then
    begin
      if Angle <> 0 then
      begin
        FImage.DrawRotateAlpha(Engine.Surface,
          round(WorldX), round(WorldY),
          round(Width), round(Height),
          Trunc(AnimPos),
          FRotationCenterX, FRotationCenterY, Round(Angle), Round(Alpha));
      end
      else
      begin
        FImage.DrawAlpha(Engine.Surface,BoundsRect,Trunc(AnimPos),Round(Alpha));
      end;
    end
    else
    begin
      if Angle <> 0 then
      begin
        FImage.DrawRotate(Engine.Surface,
          round(WorldX), round(WorldY),
          round(Width), round(Height),
          Trunc(AnimPos),
          FRotationCenterX, FRotationCenterY, Round(Angle));
      end
      else
      begin
        FImage.StretchDraw(Engine.Surface, BoundsRect, Trunc(AnimPos));
      end;
    end;
  end;
end;

//Vorher noch im "Protected" Bereich von TImageSpriteEx eintragen:
//...
//protected
// procedure DoDraw;override;
// procedure DoMove(ATimeGap: double);override;
//...

procedure TImageSpriteEx.DoMove(ATimeGap: double);
begin
  inherited;

  if FChangedRotation then
  begin
    RecalcBoundsRect;
    FChangedRotation := false;
  end;
end;
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat