Einzelnen Beitrag anzeigen

Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#169

Re: Andorra 2D - The Next Generation 2D Engine [Ver. 0.20 AL

  Alt 2. Mai 2007, 20:34
Ich habe mal alle Stellen zusammengesucht.

Die Deklaration der neuen Engine:
Delphi-Quellcode:
  TZoomSpriteengine = class(TSpriteEngine)
  private
    FZoom: Integer;
    procedure SetZoom(const Value: Integer);
  public
    property Zoom: Integer Read FZoom Write SetZoom;
  end;

{............}

procedure TZoomSpriteengine.SetZoom(const Value: Integer);
var
  r: TRect;
  w, h: integer;
begin
  FZoom := Value;
  r := FSurfaceRect;
  w := r.Right - r.Left;
  h := r.Bottom - r.Top;
  FSurfaceRect := Rect(r.Left - w * Zoom, r.Top - h * Zoom,
    r.Right + w * Zoom, r.Bottom + h * Zoom);
end;
Und jetzt die Zoomfunktionen im Hauptprogramm:

Delphi-Quellcode:
procedure TForm1.ZoomIn(Sender: TObject);
begin
  if Settings.Zoom = 1 then // Only Setup Zoom if change is necessary
    Exit;
  Settings.Zoom := 1; // Change Zoom to Close-View
  SpriteEngine.Zoom := Settings.Zoom; // Apply View to Engine
  AdDraw.AdAppl.Setup2DScene(DrawBox.Width * Settings.Zoom, // Recalibrate Viewports
    DrawBox.Height * Settings.Zoom);
  Spriteengine.X := Spriteengine.X - DrawBox.Width / 2; // Make Camera focus old target point
  Spriteengine.Y := Spriteengine.Y - DrawBox.Height / 2;
end;
DrawBox ist eine PaintBox, die ich als Positionshilfe nutze. Settings ist nur eine Hilfsklasse.
  Mit Zitat antworten Zitat