Advertisement
Guest User

Untitled

a guest
Mar 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.78 KB | None | 0 0
  1. unit Animation;
  2.  
  3. interface
  4.  
  5. uses
  6.    System.SysUtils, System.Types, System.UITypes, System.Classes,
  7.    System.Variants,
  8.    FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Ani,
  9.    FMX.Objects, Rocket, System.Generics.Collections;
  10.  
  11. const
  12.    ROCKET_AMNT = 10;
  13.  
  14. type
  15.    TMainForm = class(TForm)
  16.       Timer1: TTimer;
  17.       imgBackground: TImage;
  18.       procedure FormCreate(Sender: TObject);
  19.       procedure Timer1Timer(Sender: TObject);
  20.       procedure FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  21.         Shift: TShiftState);
  22.    private
  23.       { Private declarations }
  24.    public
  25.       ArrayOfRockets: TObjectList<TRocket>;
  26.       { Public declarations }
  27.    end;
  28.  
  29. var
  30.    MainForm: TMainForm;
  31.  
  32. implementation
  33.  
  34. {$R *.fmx}
  35.  
  36. procedure TMainForm.FormCreate(Sender: TObject);
  37. var
  38.    I: Integer;
  39. begin
  40.    Randomize;
  41.    ArrayOfRockets := TObjectList<TRocket>.Create(False);
  42. end;
  43.  
  44. procedure UpdateWorld(var F: TMainForm);
  45. var
  46.    I: Integer;
  47. begin
  48.    with F do
  49.    begin
  50.       I := 0;
  51.       while I <> ArrayOfRockets.Count do
  52.       begin
  53.          if Assigned(ArrayOfRockets[I]) then
  54.          begin
  55.             if not ArrayOfRockets[I].Destroyed then
  56.                ArrayOfRockets[I].Update
  57.             else
  58.             begin
  59.                ArrayOfRockets[I].Destroy;
  60.                ArrayOfRockets.Delete(I);
  61.                Dec(I);
  62.             end;
  63.          end;
  64.          Inc(I);
  65.       end;
  66.    end;
  67. end;
  68.  
  69. procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  70.   Shift: TShiftState);
  71. begin
  72.    if Key = vkReturn then
  73.       ArrayOfRockets.Add(TRocket.Create(200 + Random(300), 408,
  74.         30 - Random(60), 2));
  75. end;
  76.  
  77. procedure TMainForm.Timer1Timer(Sender: TObject);
  78. begin
  79.    UpdateWorld(Self);
  80. end;
  81.  
  82. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement