Spaceship Warrior (Delphi Game)

                              
  

Code 1:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls;

type

  TForm1 = class(TForm)

    Image1: TImage;

    Timer1: TTimer;

    Image2: TImage;

    Timer2: TTimer;

    Timer3: TTimer;

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure Timer2Timer(Sender: TObject);

    procedure Timer3Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;


var

  Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);

begin

DoubleBuffered:=True; //Código buffer pra imagem não ficar piscando

Image1.Picture.LoadFromFile('ship.bmp'); //Carrega nave

Image2.Picture.LoadFromFile('bullet.bmp'); //Carrega tiro nave

Image2.Visible:=false; //Esconde imagem tiro da nave

Image2.Enabled:=false; //Desabilita tiro da nave

end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin

//Tecla para esquerda

if (GetKeyState(vk_left)<0) then

begin

Image1.Left:=Image1.Left-5; //Movimenta nave pra esquerda

end;


//Tecla para direita

if (GetKeyState(vk_right)<0) then

begin

Image1.Left:=Image1.Left+5; //Movimenta nave pra direita

end;


//Tecla para cima

if (GetKeyState(vk_up)<0) then

begin

Image1.Top:=Image1.Top-5; //Movimenta nave pra cima

end;


//Tecla para baixo

if (GetKeyState(vk_down)<0) then

begin

Image1.Top:=Image1.Top+5; //Movimenta nave pra baixo

end;


//Tecla de espaço

if (GetKeyState(vk_space)<0) then

begin

Timer3.enabled:=true; //Ativa animação da nave

Image2.Enabled:=true; //Habilita imagem do tiro da nave

Image2.Visible:=true; //Deixa visível o tiro da nave

end;


end;


procedure TForm1.Timer2Timer(Sender: TObject);

begin

//Alinha tiro da nave com a imagem da nave

Image2.Top:=Image1.Top+33;

end;


procedure TForm1.Timer3Timer(Sender: TObject);

begin

Image2.Left:=Image1.Left+Random(500); //Tiro randômico

Timer3.Enabled:=false; //Desativa o timer da animação

Image2.Enabled:=false; //Desativa novamente o tiro da nave

Image2.Visible:=false; //Oculta novamente o tiro da nave

end;


end.


Code 2: 

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ExtCtrls;

type

  TForm1 = class(TForm)

    Image1: TImage;

    Timer1: TTimer;

    procedure FormCreate(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;


var

  Form1: TForm1;


implementation


{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);

begin

DoubleBuffered:=True;

Image1.Picture.LoadFromFile('ship.bmp');

end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin

if (GetKeyState(vk_left)<0) then

begin

Image1.Left:=Image1.Left-5;

end;


if (GetKeyState(vk_right)<0) then

begin

Image1.Left:=Image1.Left+5;

end;


if (GetKeyState(vk_up)<0) then

begin

Image1.Top:=Image1.Top-5;

end;


if (GetKeyState(vk_down)<0) then

begin

Image1.Top:=Image1.Top+5;

end;


end;


end.


By Celio Azevedo.