Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 34

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

23.12.2012, 13:07. Показов 7044. Ответов 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.
Скиньте пожалуйста хоть кусочек кода или желательно готовое меню с игрой.
Миниатюры
Создать меню для игры  
Вложения
Тип файла: rar курсовая работа 1215.rar (1.46 Мб, 25 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.12.2012, 13:07
Ответы с готовыми решениями:

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

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

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

2
0 / 0 / 0
Регистрация: 23.04.2012
Сообщений: 34
23.12.2012, 17:39  [ТС]
Как сделать так чтобы при запуске программы запускалась не игра
а меню!!! Потом только при нажатии на определенную кнопку игра запускается.
У меня две процедуры отвечающие за прорисовку игрового поля
GenMap(a,n);
DrawMap(a,n);
вот куда бы я их не ставил программа все равно рисует игровое поле поверх меню
0
561 / 484 / 168
Регистрация: 14.02.2012
Сообщений: 1,561
23.12.2012, 18:23
Как вариант модуль Events(если игра реально в Pascal ABC).
Модуль Events предназначен для создания программ, управляемых событиями. Он работает только в паре с модулем GraphABC. При одновременном подключении модулей GraphABC и Events программа после запуска и выполнения своего основного блока begin/end не завершается, а продолжает выполняться, отслеживая возникающие события. Все события связаны с графическим окном: это события, приходящие от мыши, клавиатуры, события изменения размеров графического окна и событие его закрытия. После закрытия графического окна программа завершается.
Создаете события, а потом уже в обработчике рисуете поле. Или же можно реализовать на модуле VCL
Модуль VCL (Visual Components Library - библиотека визуальных компонентов) содержит компоненты в стиле Delphi, позволяющие разрабатывать приложения с главной формой, на которую могут быть помещены стандартные элементы управления Windows. Приложения этого типа в Pascal ABC называются приложениями Pascal ABC Forms. Они являются событийно управляемыми и завершаются лишь после закрытия главной формы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.12.2012, 18:23
Помогаю со студенческими работами здесь

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

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

Меню для игры
Здравствуйте! Как создать меню для игры на Delphi. И как это сделать так, чтобы меню убиралось и снова появлялось при нажатии кнопки паузы.

Меню для игры
пишу курсовик. уже почти готов, начинаю готовить меню для игры.. не могу понять принцип написания.. нужно чтобы были пункты новой игры,...

Меню для игры
Есть код игры &quot;Змейка&quot; на Си. Как сделать меню с выбором: Игра, Рекорды, Выход. Чтобы после выбора пункта игра запускался основной код. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru