prosze o pomoc. Mam do napisania gre ktorapolega na lapaniu spadajacych pileczek przy pomocy ruchomej belki. Napisalem program do tego ale n ie wiem jak zrobic zeby spadalo wiecej niz jedna pilka na innych poziomach????? PROSZE O POMOC na pewno sie dogadamy ponizej przedstawiam caly kod tego programu
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Menus;
type
TForm1 = class(TForm)
zegar: TTimer;
MainMenu1: TMainMenu;
Opcje1: TMenuItem;
Nowagra1: TMenuItem;
Koniec1: TMenuItem;
N1: TMenuItem;
Panel1: TPanel;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
zycie1: TShape;
zycie2: TShape;
zycie3: TShape;
Shape1: TShape;
belka: TShape;
pilka3: TShape;
pilka2: TShape;
pilka5: TShape;
pilka4: TShape;
pilka6: TShape;
pilka7: TShape;
pilka9: TShape;
pilka8: TShape;
pilka1: TShape;
pilka10: TShape;
Panel2: TPanel;
procedure fromcreate(sender: tobject);
procedure Koniec1Click(Sender: TObject);
procedure Nowagra1Click(Sender: TObject);
procedure fromkeydown(sender:tobject; var key:word; shift: tshiftstate);
procedure zegarTimer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var punkty,
poziom,
zycia,
p,
iloscpilek:integer;
gra:boolean;
pilki: array [1..10] of tshape;
szanse:array [1..3] of tshape;
{$R *.dfm}
{ TForm1 }
procedure TForm1.fromcreate(sender: tobject);
begin
punkty:=0;
poziom:=0;
zycia:=3;
iloscpilek:=0;
gra:=false;
szanse[1]:=zycie1;
szanse[2]:=zycie2;
szanse[3]:=zycie3;
pilki[1]:=pilka1;
pilki[2]:=pilka2;
pilki[3]:=pilka3;
pilki[4]:=pilka4;
pilki[5]:=pilka5;
pilki[6]:=pilka6;
pilki[7]:=pilka7;
pilki[8]:=pilka8;
pilki[9]:=pilka9;
pilki[10]:=pilka10;
end;
procedure TForm1.fromkeydown(sender: tobject; var key: word; shift: tshiftstate);
begin
if gra=true then
begin
if (word(key)=vk_left) then
begin
if (belka.Left-5>=8)then
belka.left:=belka.Left-15
else belka.Left:=8;
end;
if (word(key)=vk_right) then
begin
if (belka.Left+5<233) then
belka.left:=belka.Left+15
else belka.left:=235;
end;
end;
end;
procedure TForm1.Koniec1Click(Sender: TObject);
begin
close();
end;
procedure TForm1.Nowagra1Click(Sender: TObject);
begin
punkty:=0;
poziom:=1;
zycia:=3;
iloscpilek:=0;
gra:=true;
szanse[1]:=zycie1;
szanse[2]:=zycie2;
szanse[3]:=zycie3;
zycie1.Brush.Color:=clfuchsia;
zycie2.Brush.Color:=clfuchsia;
zycie3.Brush.Color:=clfuchsia;
edit1.Text:='0';
edit2.Text:='1';
pilki[1]:=pilka1;
pilki[2]:=pilka2;
pilki[3]:=pilka3;
pilki[4]:=pilka4;
pilki[5]:=pilka5;
pilki[6]:=pilka6;
pilki[7]:=pilka7;
pilki[8]:=pilka8;
pilki[9]:=pilka9;
pilki[10]:=pilka10;
form1.SetFocus;
panel2.caption:='Grasz';
end;
procedure TForm1.zegarTimer(Sender: TObject);
var i,j,k:integer;
begin
if (zycia>0) and (gra=true) then
if iloscpilek<poziom then
begin
poziom:=1;
p:=4;
iloscpilek:=iloscpilek+1;
pilki[iloscpilek].Visible:=true;
pilki[iloscpilek].top:=80;
pilki[iloscpilek].left:=(pilki[iloscpilek].Left+random(285)) mod 285+10;
end;
for i:=1 to iloscpilek do
begin
pilki[i].Top:=pilki[i].Top +p div 4 ;
if punkty>9 then p:=6;
if punkty>19 then p:=7;
if punkty>29 then p:=9;
if punkty>39 then p:=11;
if punkty>49 then p:=13;
if punkty>59 then p:=16;
if punkty>69 then p:=18;
if punkty>79 then p:=20;
if punkty>89 then p:=22;
end;
k:=iloscpilek;
for i:=1 to k do
begin
if pilki[i].top>402 then
if (pilki[i].left>=belka.left) and
(pilki[i].left<=belka.left+70) then
begin
punkty:=punkty+1;
edit1.Text:=inttostr(punkty);
poziom:=(punkty div 10) +1;
edit2.Text:=inttostr(poziom);
pilki[i].Visible:=false;
iloscpilek:=iloscpilek-1;
if poziom=11 then
begin
edit2.text:='koniec';
panel2.Caption:='wynik = '+(edit1.Text);
gra:=false;
end;
end
else
begin
for j:=3 downto zycia do
szanse[j].Brush.Color:=clmedgray;
zycia:=zycia-1;
if zycia=0 then
begin gra:=false ;
panel2.Caption:='przegrales';
end;
pilki[i].visible:=false;
iloscpilek:=iloscpilek-1;
end;
end;
end;
end.