урок на делфи 35 - Игра галактика(galaxy)


задание на delphi. Игра галактика ("почти похоже на оригинал)))))")


unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Shape1: TShape;
Timer1: TTimer;
Shape2: TShape;
Shape3: TShape;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Timer2: TTimer;
Label1: TLabel;
Image6: TImage;
Timer4: TTimer;
Label2: TLabel;
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Timer2Timer(Sender: TObject);
procedure Timer4Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
pula_y1,pula_y2,pula_y3:Integer;
chet_pyli:integer;
vragi_left_right:Integer;
{Программа подготовлена для ролика на ютубе https://youtu.be/w45lKxsunMg
И скачена с сайте http://dear-ruslan.ru
Автор Салихьянов Руслан. }
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
pula_y1:=0;
pula_y2:=0;
pula_y3:=0;
chet_pyli:=0;
vragi_left_right:=1;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=37 then
begin
Image1.Left:=Image1.Left-5;
end;
if key=39 then
begin
Image1.Left:=Image1.Left+5;
end;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#32 then
begin
chet_pyli:=chet_pyli+1;
Timer1.Enabled:=true;
if (Shape1.Visible=false) and (Shape1.Tag=0) and (chet_pyli=1) then
begin
Shape1.Left:=Round(Image1.Left+(Image1.Width/2));
Shape1.Visible:=True;
Shape1.Tag:=1;
Label1.Caption:='1';
end;
if (Shape2.Visible=false) and (Shape2.Tag=0) and (chet_pyli=2) then
begin
Shape2.Left:=Round(Image1.Left+(Image1.Width/2));
Shape2.Visible:=True;
Shape2.Tag:=1;
Label1.Caption:='2';
end;
if (Shape3.Visible=false) and (Shape3.Tag=0) and (chet_pyli=3) then
begin
Shape3.Left:=Round(Image1.Left+(Image1.Width/2));
Shape3.Visible:=True;
Shape3.Tag:=1;
Label1.Caption:='3';
end;
end;
end;
function popal(q,w:integer):Boolean;
begin
if (q<=form1.Image2.Top) and (form1.Image2.Left begin
Form1.Image2.Picture.Assign(Form1.Image6.Picture);
Form1.Image2.Tag:=1;
end;
if (q<=form1.Image3.Top) and (form1.Image3.Left begin
Form1.Image3.Picture.Assign(Form1.Image6.Picture);
Form1.Image3.Tag:=1;
end;
if (q<=form1.Image4.Top) and (form1.Image4.Left begin
Form1.Image4.Picture.Assign(Form1.Image6.Picture);
Form1.Image4.Tag:=1;
end;
if (q<=form1.Image5.Top) and (form1.Image5.Left begin
Form1.Image5.Picture.Assign(Form1.Image6.Picture);
Form1.Image5.Tag:=1;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Shape1.Visible=true then
begin
Shape1.Top:=600-pula_y1;
pula_y1:=pula_y1+10;
popal(Shape1.Top,Shape1.Left);
end;
if Shape2.Visible=true then
begin
Shape2.Top:=600-pula_y2;
pula_y2:=pula_y2+10;
popal(Shape2.Top,Shape2.Left);
end;
if Shape3.Visible=true then
begin
Shape3.Top:=600-pula_y3;
pula_y3:=pula_y3+10;
popal(Shape3.Top,Shape3.Left);
end;
if (Shape1.Top<0) and (Shape2.Top<0) and (Shape3.Top<0) then
begin
pula_y1:=0;
pula_y2:=0;
pula_y3:=0;
Shape1.Visible:=false;
Shape2.Visible:=false;
Shape3.Visible:=false;
chet_pyli:=0;
Shape1.Tag:=0;
Shape2.Tag:=0;
Shape3.Tag:=0;
chet_pyli:=0;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if (Image2.Left>0) and (Timer2.Tag=0) then
begin
Image2.Left:=Image2.Left-vragi_left_right;
Image3.Left:=Image3.Left-vragi_left_right;
Image4.Left:=Image4.Left-vragi_left_right;
Image5.Left:=Image5.Left-vragi_left_right;
end
else
begin
Timer2.Tag:=1;
Image2.Left:=Image2.Left+vragi_left_right;
Image3.Left:=Image3.Left+vragi_left_right;
Image4.Left:=Image4.Left+vragi_left_right;
Image5.Left:=Image5.Left+vragi_left_right;
end;
if Image5.Left+Image5.Width>Form1.Width then
Timer2.Tag:=0
end;
procedure TForm1.Timer4Timer(Sender: TObject);
begin
if Image2.Tag=1 then
begin
Image2.Visible:=false;
Image2.Tag:=2;
end;
if Image3.Tag=1 then
begin
Image3.Visible:=false;
Image3.Tag:=2;
end;
if Image4.Tag=1 then
begin
Image4.Visible:=false;
Image4.Tag:=2;
end;
if Image5.Tag=1 then
begin
Image5.Visible:=false;
Image5.Tag:=2;
end;
if (Image2.Tag=2) and (Image3.Tag=2) and (Image4.Tag=2) and(Image5.Tag=2) then
begin
Label2.Visible:=true;
Timer1.Enabled:=false;
Timer2.Enabled:=false;
Timer4.Enabled:=false;
end;
end;
end.



Скачать