📄 unit1.pas
字号:
inc(cury1);
end ;
Boxmove(curx1,cury1,paintbox1.Canvas,image1.Picture,mbox1,mmap1,0) ;
paintbox1paint(sender);
DXInput1.States := DXInput1.States -[isButton5];
end;
end;
procedure drawlittle(can:Tcanvas;box:TBOxBlock);
var
i,j:integer;
begin
for j:=0 to BoxNUm+1 do
for i:=0 to BoxNum+1 do
DrawRectB(can,(i)*15,(j)*15,form1.Panel1.Color);
for i:=1 to BoxNum do
DrawRectG(can,(box.block[i].x+1)*15,(Box.block[i].Y+1 )*15,form1.Image1.Picture);
end;
procedure ranmap(k:integer;var map:tmapblock;m:integer=1);
var i,j,r1:integer;
begin
randomize;
for i:=25-k to 24 do
for j:=1 to 15 do
begin
r1:= random(15);
map[r1+1,i].b:=false;
end;
for i:=25-k to 24 do
for j:=1 to 15 do
begin
r1:= random(15);
map[r1+1,i].b:=true;
end;
if m=1 then
form1.PaintBox1paint(nil)
else
form1.PaintBox2paint(nil);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not cango(curx1,cury1+1,mbox1,mmap1) then
Dxtimer1timer(sender,0);
// if not cango(curx1,cury1+2,mbox1,mmap1) then
// Dxtimer1timer(sender,0);
if not Boxmove(curx1,cury1,paintbox1.Canvas,image1.Picture,mbox1,mmap1,0) then
begin
Dxtimer1timer(sender,0);
inc(count1);
if Menusound.Checked then
begin
PlaySound(PChar('stop'), hInstance, snd_ASync or snd_Resource);
end;
application.ProcessMessages;
if cury1<=3 then
begin
timer1.Enabled:=false;
timer3.Enabled:=false;
form1.DXTimer1.Enabled:=false;
over1:=3;
timer5.Enabled:=true;
// gameover();
exit;
end;
if count1-count2=8 then
begin
if ElineE(mmap2,1,eline2) then
begin
ranmap(1,mmap2,2) ;
count1:=6;
count2:=4;
end
else
begin
timer1.Enabled:=false;
timer3.Enabled:=false;
form1.DXTimer1.Enabled:=false;
over2:=3;
timer5.Enabled:=true;
// gameover;
exit;
end;
end;
BoxToMap(Mmap1,mbox1,curx1,cury1);
flineblock(Mmap1,line1);
elineblock(mmap1,line1,mmap2,2,eline2);
drawblock(curx1,cury1,paintbox1.Canvas,mbox1,image1.Picture,mmap1);
DrawMap(paintbox1.Canvas,image1.Picture,mmap1);
curx1:=0;
cury1:=0;
mbox1:=nextbox1;
nextbox1:=nextbox[next1];
drawlittle(paintbox3.Canvas,nextbox1);
inc(next1);
if next1=201 then next1:=1 ;
curx1:=8;
cury1:=1;
end;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
begin
if nexts=201 then
begin
nexts:=1 ;
timer2.Enabled:=false;
exit;
end;
productboxblock(nextbox[nextS],mboxstale);
inc(nexts);
end;
procedure TForm1.Timer3Timer(Sender: TObject);
var i:integer;
begin
if not cango(curx2,cury2+1,mbox2,mmap2) then
Dxtimer1timer(sender,0);
//if not cango(curx2,cury2+2,mbox2,mmap2) then
// Dxtimer1timer(sender,0);
if not Boxmove(curx2,cury2,paintbox2.Canvas,image1.Picture,mbox2,mmap2,0) then
begin
Dxtimer1timer(sender,0);
inc(count2);
if Menusound.Checked then
begin
PlaySound(PChar('stop'), hInstance, snd_ASync or snd_Resource);
end;
application.ProcessMessages;
if cury2<=3 then
begin
timer1.Enabled:=false;
timer3.Enabled:=false;
form1.DXTimer1.Enabled:=false;
over2:=3;
timer5.Enabled:=true;
// gameover;
exit;
end;
if count2-count1=8 then
begin
if ElineE(mmap1,1,eline1) then
begin
ranmap(1,mmap1,1) ;
count2:=6;
count1:=4;
end
else
begin
timer1.Enabled:=false;
timer3.Enabled:=false;
form1.DXTimer1.Enabled:=false;
over1:=3;
timer5.Enabled:=true;
// over2:=1;
// gameover;
exit;
end;
end;
BoxToMap(Mmap2,mbox2,curx2,cury2);
flineblock(Mmap2,line2);
elineblock(mmap2,line2,mmap1,1,eline1);
drawblock(curx2,cury2,paintbox2.Canvas,mbox2,image1.Picture,mmap2);
DrawMap(paintbox2.Canvas,image1.Picture,mmap2);
curx2:=0;
cury2:=0;
mbox2:=nextbox2;
nextbox2:=nextbox[next2];
drawlittle(paintbox4.Canvas,nextbox2);
inc(next2);
if next2=201 then next2:=1 ;
curx2:=8;
cury2:=1;
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//Dxtimer1timer(sender,0);
//timer1can:=false;
// timer3can:=false;
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// timer1can:=true;
// timer3can:=true;
// timer1timer(sender);
// timer3timer(sender);
end;
procedure TForm1.Timer4Timer(Sender: TObject);
var co:tcolor;
begin
co:=RGB(Random(205)+50,Random(205)+50,Random(205)+50);
label1.Font.Color:=co;
label2.Font.Color:=co;
label3.Font.Color:=co;
label4.Font.Color:=co;
if (not menupause.Enabled ) and menucontinue.Enabled then
begin
drawlittle(paintbox3.Canvas,Nextbox1);
drawlittle(paintbox4.Canvas,Nextbox2);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
form1.Label5.Visible:=false;
form1.Label6.Visible:=false;
form1.Label7.Visible:=false;
form1.Label8.Visible:=false;
end;
procedure TForm1.MenuReplayClick(Sender: TObject);
begin
win1:=0;
lost1:=0;
win2:=0;
lost2:=0;
form1.Label1.Caption:='won '+ inttostr(win1);
form1.Label2.Caption:='lost '+ inttostr(lost1);
form1.Label3.Caption:='won '+ inttostr(win2);
form1.Label4.Caption:='lost '+ inttostr(lost2);
menustartclick(nil);
end;
procedure TForm1.MenuPauseClick(Sender: TObject);
begin
if not timer4.Enabled then exit;
timer1.Enabled:=false;
timer3.Enabled:=false;
dxtimer1.Enabled:=false;
menucontinue.Enabled:=true;
menupause.Enabled:=false;
end;
procedure TForm1.MenuContinueClick(Sender: TObject);
begin
if not timer4.Enabled then exit;
timer1.Enabled:=true;
timer3.Enabled:=true;
dxtimer1.Enabled:=true;
menucontinue.Enabled:=false;
menupause.Enabled:=true;
end;
procedure TForm1.ApplicationEvents1Activate(Sender: TObject);
begin
menucontinueclick(sender);
end;
procedure TForm1.ApplicationEvents1Deactivate(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.Timer5Timer(Sender: TObject);
begin
gameover;
timer5.Enabled:=false;
end;
procedure TForm1.MenuExitClick(Sender: TObject);
begin
close;
end;
procedure TForm1.MenuGameClick(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.MenuOptionClick(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.MenuMusicClick(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.MenuAboutClick(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.MenuSoundClick(Sender: TObject);
begin
menusound.Checked:= NOT menusound.Checked;
end;
procedure TForm1.MenuKeyboardClick(Sender: TObject);
begin
form2.ShowModal;
end;
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
menupauseclick(sender);
end;
procedure TForm1.ApplicationEvents1Restore(Sender: TObject);
begin
menucontinueclick(sender);
end;
procedure TForm1.N3Click(Sender: TObject);
begin
showmessage('作者火血狼感谢钧钧小姐的大力支持!');
end;
procedure TForm1.N2Click(Sender: TObject);
begin
menupauseclick(sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -