Пользователь
Регистрация: 29.10.2012
Сообщений: 64
|
Не получается создать меню в курсовой работе!!!
При запуске программы загружается и меню и игра одновременно!!!
(Как на картинке)
Я хочу чтобы сначала выходило меню, а при нажатии на кнопку "Новая игра" запустилась игра.
Вот собственно код программы
Код:
uses graphabc,Events,ABCObjects;
const nmax=9;
type mas=array [1..nmax,1..nmax] of byte;
var Mk:array [1..9, 1..9] of PictureABC;
a: mas; n: byte;
ll,zp,menu1, menu2, menu3, menu4, menu11, menu12, menu13, menu14, m1, m11, m2, m12, m3, m13, m4, m14, m5, m15, m6, m16, back, back1:PictureABC;
k,b,i,j,i1,j1,flag,flag1,u:integer;
xk,yk: integer;
procedure MouseMove(x,y,mb: integer);
begin
if u=1 then
begin
if menu1.PtInside(x,y)= true then
menu11.visible:=true
else
menu11.visible:=false;
if menu4.PtInside(x,y)= true then
menu14.visible:=true
else
menu14.visible:=false;
end
else
begin
if back.ptinside(x,y)=true then
back1.visible:=true
else
back1.visible:=false;
end;
end;
procedure numb(x,y,n: integer);
begin
ll:=PictureABC.Create(x,y,'bamboo'+inttostr(n)+'.png');
end;
procedure GenMap(var z: mas; var n: byte);
var i,j,ik,jk:byte;
begin
n:=9; ik:=random(n)+1; jk:=random(n)+1;
for i:=1 to n do
for j:=1 to n do
begin
while z[ik,jk]<>0 do
begin
ik:=random(n)+1; jk:=random(n)+1;
end;
z[ik,jk]:=j;
end;
end;
procedure DrawMap(z: mas; n: byte);
var i,j: byte; x,y: integer;
begin
n:=9;
for i:=1 to n do
for j:=1 to n do
begin
xk:=25+(43*i); yk:=25+(60*j);
mk[i,j]:= PictureABC.Create(xk,yk,'bamboo'+inttostr(a[i,j])+'.png');
end;end;
procedure mousedown(x,y,mb:integer);
begin //1
if u=1 then
begin //2
if menu1.PtInside(x,y)= true then
begin
{что сюда писать}
end;
if menu4.PtInside(x,y)= true then
begin //5
CloseWindow;
end; //-5
end //-2
else
begin //6
if u=0 then
begin //7
if back.PtInside(x,y)= true then
begin //8
u:=2;
menu1.visible:=true;
menu4.visible:=true;
end; //-8
end //-7
else
begin //9
if back.PtInside(x,y)= true then
begin //10
u:=1;
LoadWindow ('50.bmp');
back.visible:=false;
back1.visible:=false;
menu1.visible:=true;
menu4.visible:=true;
end; //-10
end; //-9
//второй клик
if (k<>0) and (b<>0) then
begin //11
flag1:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>0 then if mk[i,j].ptinside(x,y)=true then
if a[i,j] = a[k,b] then begin {12} mk[i,j].destroy; mk[k,b].destroy; a[i,j] :=0; a[k,b]:=0; flag1:=1; end;//-12
end; //-11
if (flag1 = 0) then begin {13} zp.visible:=false; k:=0; b:=0; end; //-13
flag:=0;
for i:=1 to n do
for j:=1 to n do
if a[i,j]<>0 then if mk[i,j].ptinside(x,y)=true then begin //14
zp.visible:=true;
zp.moveto(mk[i,j].left,mk[i,j].top);
mk[i,j].tofront;
k:=i;
b:=j;
flag:=1;
//k,b - номер уже выделенного элемента флаг для проверки выделения
//mk[i,j].destroy; //выделять метка 1
//a[i,j]:=0;
//mk[i+1,j+1].destroy;
end;//-14
if (flag = 0) then begin {15} zp.visible:=false; k:=0; b:=0; end; //-15
end; //-6
end; // -1
begin
LoadWindow ('100.PNG');
SetWindowSize(648,496);
centerwindow;
OnMouseMove:=MouseMove;
OnMouseDown:=MouseDown;
zp:=CreatePictureABC(0,200,'11.bmp');
zp.width:=45;
zp.height:=60;
zp.visible:=false;
k:=0;
b:=0;
i1:=1;j1:=1;
GenMap(a,n);
DrawMap(a,n);
menu1:=CreatePictureABC(0,100,'52.bmp');
menu11:=CreatePictureABC(0,100,'52 1.bmp');
menu11.visible:=false;
menu4:=CreatePictureABC(0,340,'55.bmp');
menu14:=CreatePictureABC(0,340,'55 1.bmp');
menu14.visible:=false;
back:=CreatePictureABC(0,540,'back.bmp');
back.visible:=false;
back1:=CreatePictureABC(0,540,'back1.bmp');
back1.visible:=false;
end.
Скиньте пожалуйста хоть кусочек кода или желательно готовое меню с игрой.
Последний раз редактировалось Stilet; 23.12.2012 в 13:26.
|