Buscar

Game em delphi7?

Código

Unit jogou;

   interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, ImgList, Gauges, StdCtrls, DXSounds;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Aviaod: TImage;
    Bombad: TImage;
    Bombae: TImage;
    Aviaoe: TImage;
    Timer2: TTimer;
    Timer3: TTimer;
    Gauge1: TGauge;
    Gauge2: TGauge;
    tela1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    DXSound1: TDXSound;
    wl: TDXWaveList;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  adg,aeg: boolean;
  mensagem:boolean;
  comeco:boolean;

implementation

uses jogou2;

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin

if iniciar=true then //Se o botão 'iniciar' for clicado então
begin
   if comeco=true then  // Esta variável grava os nomes dos jogadores
begin
  label1.caption:=form2.edit1.text; // O nome do Primeiro jogador aparecerá no canto superior esquerdo da tela
  label2.caption:=form2.edit2.text; // O nome do Segundo jogador aparecerá no canto superior Direito da tela
end; comeco:=false;  // Finaliza este bloco de código

// 1º Jogador //
  if (getkeystate(75) and $8000)<> 0 then Aviaod.left:=Aviaod.left-5;
//Se a tecla 'K' for pressionada então o avião(1) vai para trás
  if (getkeystate(186) and $8000)<> 0 then Aviaod.left:=Aviaod.left+5;
//Se a tecla 'Ç' for pressionada então o avião(1) vai para frente
  if (getkeystate(79) and $8000)<> 0 then Aviaod.top:=Aviaod.top-5;
//Se a tecla 'O' for pressionada então o avião(1) vai para cima
  if (getkeystate(76) and $8000)<> 0 then Aviaod.top:=Aviaod.top+5;
//Se a tecla 'L' for pressionada então o avião(1) vai para baixo

// 2º Jogador //
if (getkeystate(37) and $8000)<> 0 then Aviaoe.left:=Aviaoe.left-5;
//Se a tecla 'Frente' for pressionada então o avião(2) vai para frente
if (getkeystate(39) and $8000)<> 0 then Aviaoe.left:=Aviaoe.left+5;
//Se a tecla 'Trás' for pressionada então o avião(2) vai para trás
if (getkeystate(38) and $8000)<> 0 then Aviaoe.top:=Aviaoe.top-5;
//Se a tecla 'Cima' for pressionada então o avião(2) vai para cima
if (getkeystate(40) and $8000)<> 0 then Aviaoe.top:=Aviaoe.top+5;
//Se a tecla 'Baixo' for pressionada então o avião(2) vai para baixo


  if (getkeystate(27) and $8000)<> 0 then  close;
//Se a tecla 'Esc' for pressionada então programa será fechado

if Aviaod.Left<0 then Aviaod.left:=0;  //Este código serve para não deixar que a posição horizontal do avião(1) seja menor que zero
if Aviaod.left>275 then Aviaod.left:=275; // Este código serve para não deixar o avião(1) passar para a area do avião(2)

if Aviaod.top<0 then Aviaod.top:=0; //Este código serve para não deixar que a posição vertical do avião(1) seja menor que zero
if Aviaod.top>420 then Aviaod.top:=420; //Este código serve para não deixar que a posição vertical do avião(1) seja maior que 420


if Aviaoe.Left<275 then Aviaoe.left:=275; //Este código serve para não deixar que o avião(2) ultrapasse a area do avião(1)
if Aviaoe.left>550 then Aviaoe.left:=550; //Este código serve para não deixar que o avião(2) ultrapasse 550

if Aviaoe.top<0 then Aviaoe.top:=0; //Este código serve para não deixar que a posição vertical avião(2) seja menor que Zero
if Aviaoe.top>420 then Aviaoe.top:=420; //Este código serve para não deixar que a posição vertical avião(2) seja maior que 420

//bombas

  if (getkeystate(70) and $8000)<> 0 then begin
//Se a tecla 'F' for pressionada então
if adg=true then // Se a bomba(1) não estiver visivel então
begin   // Este código ativa a animação da bomba
   Bombad.Left:=Aviaod.left+45;
   Bombad.top:=Aviaod.top+26;
   Timer2.enabled:=true;   // A animação é ativada
   wl.items[0].play(false); // O som da bomba(1) é ativado
end;
end;

if Bombad.left>600 then // Se a posição da bomba(1) for maior que 600 então
begin
Timer2.enabled:=false; // Desativa a animação da bomba(1)
Bombad.visible:=false; // Bomba(1) desaparece
adg:=true; // Esta variável grava a informação que a bomba(1) pode ser lançada novamente

end;
  // fim--> bombaD
  // bombaE

  if (getkeystate(101) and $8000)<> 0 then begin
//Se a tecla '5' (do lado Direito do teclado) for pressionada então
if aeg=true then  // Se a bomba(2) não estiver visivel então
begin
   Bombae.Left:=Aviaoe.left+45;
   Bombae.top:=Aviaoe.top+26;
   Timer3.enabled:=true;  // A animação é ativada
   wl.items[0].play(false); // O som da bomba(2) é ativado
end;
end;

if Bombae.left<0 then // Se a posição da bomba(2) for men0r que zero então
begin
Timer3.enabled:=false; // Desativa a animação da bomba(2)
Bombae.visible:=false; // Bomba(2) desaparece
aeg:=true;   // Esta variável grava a informação que a bomba(2) pode ser lançada novamente


end;
// Ação   ///////
if (Bombad.left>=Aviaoe.left) and (Bombad.left<=Aviaoe.left+Aviaoe.width)
and (Bombad.top>=Aviaoe.top) and(Bombad.top<=Aviaoe.top+Aviaoe.height)
and (Bombad.visible=true ) then begin
// Se a bomba(1) atingir o avião(2) então
Gauge2.Progress:=gauge2.Progress-1; // Energia do avião(2) diminui
wl.items[1].play(false);  // Ativa o som da explosão
end;

if (Bombae.left>=Aviaod.left) and (Bombae.left<=Aviaod.left+Aviaod.width)
and (Bombae.top>=Aviaod.top) and(Bombae.top<=Aviaod.top+Aviaod.height)
and (Bombae.visible=true ) then begin
// Se a bomba(2) atingir o avião(2) então
Gauge1.Progress:=gauge1.Progress-1; // Energia do avião(1) diminui
wl.items[1].play(false);  // Ativa o som da explosão
end;
     //fim da ação//
if gauge1.progress=0 then // Se a energia do avião(1) chegar
  begin
  gauge1.progress:=100; // avião(1) recupera a energia
  gauge2.progress:=100; // avião(2) recupera a energia
  showmessage(form2.edit2.text+' ganhou'); // Uma mensagem aparecerá informando a vitória do avião(1)
  gauge1.progress:=100; // avião(1) recupera a energia
  gauge2.progress:=100; // avião(2) recupera a energia
  end;

if gauge2.progress=0 then
  begin
  gauge1.progress:=100; // avião(1) recupera a energia
  gauge2.progress:=100; // avião(2) recupera a energia
  showmessage(form2.edit1.text+' ganhou');  // Uma mensagem aparecerá informando a vitória do avião(2)
  gauge1.progress:=100; // avião(1) recupera a energia
  gauge2.progress:=100; // avião(2) recupera a energia
  end;

end;//fim -->iniciar

end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if adg=true then Bombad.visible:=true; // bomba(1) aparece
Bombad.left:=Bombad.left+11; // Bomba(1) é lançada contra o avião(2)
adg:=false; // Esta variável grava a informação que a bomba está visivel

    end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
if aeg=true then Bombae.visible:=true; // Bomba(2) é lançada contra o avião(2)
Bombae.left:=Bombae.left-11; // Bomba(2) é lançada contra o avião(1)
aeg:=false;  // Esta variável grava a informação que a bomba está visivel
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
adg:=true; // A bomba(1) não está visivel
aeg:=true; // A bomba(2) não está visivel
tela1.Picture.LoadFromFile('tela1.bmp'); // Roda a imagem de fundo
tela1.Align:=alclient; // A imagem de fundo ocupa toda a tela
comeco:=true; // Ativa a variável que servirá para gravá os nomes dos jogadores
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  if iniciar=false then form2.show;
//Se o formulário inicial não for fechado então você não poderá começar o jogo
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
  if  iniciar=false then form2.show;
//Este código faz com que apareça a tela para preencher os nomes dos jogadores
end;

end.


BEM ESSE É O CÓDIGO DO GAME SIMPLES QUE ESTOU FAZENDO EM DELPHI..... TAÍ SÓ PRA TER UMA NOÇÃO!!!!!

Muito obrigado e até a próxima vez com mais dicas interessantes...

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 18/05/05
Por: Juliano
Visualizada: 3293 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009