Changeset 21 for trunk/UFormMain.pas


Ignore:
Timestamp:
Mar 1, 2014, 5:39:22 PM (11 years ago)
Author:
chronos
Message:
  • Modified: Player View rectangle separated to CellPos and ViewSize which are values in different coordinate system.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UFormMain.pas

    r20 r21  
    7676  UFormNew, UFormMove;
    7777
     78resourcestring
     79  SPlayerWins = 'Player %s wins';
     80
    7881{$R *.lfm}
    7982
     
    8487  if Game.Running then
    8588  with Game.CurrentPlayer do begin
    86     View := Bounds(View.Left, View.Top, PaintBox1.Width,
    87       PaintBox1.Height);
     89    ViewSize := Point(PaintBox1.Width, PaintBox1.Height);
    8890    Paint(PaintBox1);
    8991  end;
     
    98100  if Assigned(Game.CurrentPlayer) then
    99101  with Game.CurrentPlayer do
    100     View := Bounds(View.Left + (View.Right - View.Left) div 2 - PaintBox1.Width div 2,
    101       View.Top + (View.Bottom - View.Top) div 2 - PaintBox1.Height div 2,
    102       PaintBox1.Width, PaintBox1.Height);
     102    ViewSize := Point(PaintBox1.Width, PaintBox1.Height);
    103103  Redraw;
    104104end;
    105105
    106106procedure TFormMain.Timer1Timer(Sender: TObject);
     107var
     108  NewCaption: string;
    107109begin
    108110  if RedrawPending then begin
    109111    RedrawPending := False;
    110112    PaintBox1.Repaint;
    111     Caption := Game.CurrentPlayer.Name + ' - turn ' + IntToStr(Game.TurnCounter) + ' - xTactics';
     113
     114    NewCaption := 'xTactics';
     115    if Assigned(Game.CurrentPlayer) then
     116      NewCaption := Game.CurrentPlayer.Name + ' - turn ' + IntToStr(Game.TurnCounter) + ' - ' + NewCaption;
     117    Caption := NewCaption;
    112118  end;
    113119end;
     
    128134procedure TFormMain.DoOnWin(Player: TPlayer);
    129135begin
    130   ShowMessage('Player ' + Player.Name + ' wins');
     136  ShowMessage(Format(SPlayerWins, [Player.Name]));
    131137end;
    132138
     
    188194
    189195procedure TFormMain.FormShow(Sender: TObject);
    190 begin
     196var
     197  I: Integer;
     198begin
     199  for I := 0 to Game.Players.Count - 1 do
     200    TPlayer(Game.Players[I]).ViewSize := Point(PaintBox1.Canvas.Width, PaintBox1.Canvas.Height);
    191201  Game.New;
     202  Game.Running := True;
    192203  Redraw;
    193204end;
     
    199210    if Game.CurrentPlayer.Mode = pmHuman then begin
    200211      StartMousePoint := Point(X, Y);
    201       StartViewPoint := Point(Game.CurrentPlayer.View.Left, Game.CurrentPlayer.View.Top);
     212      StartViewPoint := Game.CurrentPlayer.CellPos;
    202213      MoveActive := True;
    203214    end;
     
    215226  if MoveActive then begin
    216227    if Game.CurrentPlayer.Mode = pmHuman then begin
    217       Game.CurrentPlayer.View := Bounds(StartViewPoint.X + StartMousePoint.X - X,
    218         StartViewPoint.Y + StartMousePoint.Y - Y,
    219         Game.CurrentPlayer.View.Right - Game.CurrentPlayer.View.Left,
    220         Game.CurrentPlayer.View.Bottom - Game.CurrentPlayer.View.Top);
     228      Game.CurrentPlayer.CellPos := Point(Trunc(StartViewPoint.X + (StartMousePoint.X - X) / Game.CurrentPlayer.ViewZoom),
     229        Trunc(StartViewPoint.Y + (StartMousePoint.Y - Y) / Game.CurrentPlayer.ViewZoom));
    221230      Redraw;
    222231    end;
     
    242251begin
    243252  with Game.CurrentPlayer do begin
    244     D := Point(Trunc(MousePos.X - Game.CurrentPlayer.View.Left / ViewZoom),
    245       Trunc(MousePos.Y - Game.CurrentPlayer.View.Top / ViewZoom));
     253    //D := Point(Trunc(MousePos.X - View.Left / ViewZoom),
     254    //  Trunc(MousePos.Y - View.Top / ViewZoom));
    246255    ViewZoom := ViewZoom / ZoomFactor;
    247256    //View := Bounds(Trunc((D.X - MousePos.X) * ViewZoom),
Note: See TracChangeset for help on using the changeset viewer.