Changeset 7 for trunk/UFormMain.pas


Ignore:
Timestamp:
Feb 11, 2014, 11:53:04 PM (11 years ago)
Author:
chronos
Message:
  • Added: Ability to select cell by mouse click.
  • Added: Delayed scene drawing with limited FPS.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UFormMain.pas

    r6 r7  
    3232    MenuItem7: TMenuItem;
    3333    PaintBox1: TPaintBox;
     34    Timer1: TTimer;
    3435    procedure AExitExecute(Sender: TObject);
    3536    procedure AGameNewExecute(Sender: TObject);
     
    5051    procedure PaintBox1Paint(Sender: TObject);
    5152    procedure EraseBackground(DC: HDC); override;
     53    procedure Timer1Timer(Sender: TObject);
    5254  private
    5355    StartMousePoint: TPoint;
    5456    StartViewPoint: TPoint;
    5557    MoveActive: Boolean;
     58    RedrawPending: Boolean;
    5659  public
    5760    Game: TGame;
     61    procedure Redraw;
    5862  end;
    5963
     
    7276procedure TFormMain.PaintBox1Paint(Sender: TObject);
    7377begin
    74   TPlayer(Game.Players[0]).Paint(PaintBox1);
     78  with TPlayer(Game.Players[0]) do begin
     79    View := Bounds(View.Left, View.Top, PaintBox1.Width,
     80      PaintBox1.Height);
     81    Paint(PaintBox1);
     82  end;
    7583end;
    7684
    7785procedure TFormMain.EraseBackground(DC: HDC);
    7886begin
     87end;
     88
     89procedure TFormMain.Timer1Timer(Sender: TObject);
     90begin
     91  if RedrawPending then begin
     92    RedrawPending := False;
     93    PaintBox1.Repaint;
     94  end;
     95end;
     96
     97procedure TFormMain.Redraw;
     98begin
     99  RedrawPending := True;
    79100end;
    80101
     
    95116    FormNew.Save(Game);
    96117    Game.New;
    97     PaintBox1.Repaint;
     118    Redraw;
    98119  end;
    99120end;
     
    116137    StartViewPoint := Point(TPlayer(Game.Players[0]).View.Left, TPlayer(Game.Players[0]).View.Top);
    117138    MoveActive := True;
     139    TPlayer(Game.Players[0]).SelectCell(Point(X, Y));
     140    Redraw;
    118141  end;
    119142end;
     
    133156      TPlayer(Game.Players[0]).View.Bottom - TPlayer(Game.Players[0]).View.Top);
    134157    TPlayer(Game.Players[0]).SelectCell(Point(X, Y));
    135     PaintBox1.Repaint;
     158    Redraw;
    136159  end;
    137160end;
     
    148171  with TPlayer(Game.Players[0]) do
    149172    ViewZoom := ViewZoom / ZoomFactor;
    150   PaintBox1.Repaint;
     173  Redraw;
    151174end;
    152175
     
    156179  with TPlayer(Game.Players[0]) do
    157180    ViewZoom := ViewZoom * ZoomFactor;
    158   PaintBox1.Repaint;
     181  Redraw;
    159182end;
    160183
Note: See TracChangeset for help on using the changeset viewer.