Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
abay19941308
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 34
#1

Создать меню для игры

23.12.2012, 13:07. Просмотров 1578. Ответов 2
Метки нет (Все метки)

При запуске программы загружается и меню и игра одновременно!!!
(Как на картинке)
Я хочу чтобы сначала выходило меню, а при нажатии на кнопку "Новая игра" запустилась игра.
Вот собственно код программы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
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.
Скиньте пожалуйста хоть кусочек кода или желательно готовое меню с игрой.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Миниатюры
Создать меню для игры  
Вложения
Тип файла: rar курсовая работа 1215.rar (1.46 Мб, 14 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2012, 13:07
Ответы с готовыми решениями:

Меню для игры
Помогите пожалуйста создать меню в Pascal abc. Меню должно содержать 5...

Пишу меню для игры , при нажатии на белое поле выскакивает ошибка и процесс завершается
Если нажимать не на квадраты , а на белое поле (фон ), то программа выдает...

Создать меню для программы
меню.

Создать меню для программы
Здравствуйте! Помогите, пожалуйста, создать меню для программы такого вида: ...

Создать меню для программы
Помогите зделать меню для етой задачи) .Мне нужно два окна для ввода числа и...

2
abay19941308
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 34
23.12.2012, 17:39  [ТС] #2
Как сделать так чтобы при запуске программы запускалась не игра
а меню!!! Потом только при нажатии на определенную кнопку игра запускается.
У меня две процедуры отвечающие за прорисовку игрового поля
GenMap(a,n);
DrawMap(a,n);
вот куда бы я их не ставил программа все равно рисует игровое поле поверх меню
0
ВАСИЛЕВС
557 / 480 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
23.12.2012, 18:23 #3
Как вариант модуль Events(если игра реально в Pascal ABC).
Модуль Events предназначен для создания программ, управляемых событиями. Он работает только в паре с модулем GraphABC. При одновременном подключении модулей GraphABC и Events программа после запуска и выполнения своего основного блока begin/end не завершается, а продолжает выполняться, отслеживая возникающие события. Все события связаны с графическим окном: это события, приходящие от мыши, клавиатуры, события изменения размеров графического окна и событие его закрытия. После закрытия графического окна программа завершается.
Создаете события, а потом уже в обработчике рисуете поле. Или же можно реализовать на модуле VCL
Модуль VCL (Visual Components Library - библиотека визуальных компонентов) содержит компоненты в стиле Delphi, позволяющие разрабатывать приложения с главной формой, на которую могут быть помещены стандартные элементы управления Windows. Приложения этого типа в Pascal ABC называются приложениями Pascal ABC Forms. Они являются событийно управляемыми и завершаются лишь после закрытия главной формы.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2012, 18:23

Вы можете подсказать,как создать игры в паскале?
Вы можете подсказать,как создать игры в паскале? сапер,судоку любую...

Создать меню с 5 кнопками
Всем привет. Помогите пожалуйста, нужно создать меню с 5 кнопками, 1-4 кнопки...

Создать форму с меню
написать форму с меню в которой программа будет искать наибольший элемент в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru