Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Меню в игре.   Найти похожие ветки 

 
ZAROLF ©   (2004-01-17 07:42) [0]

Мастера, нужно решить такую проблему:
Допустим у меня в игре, типа в меню, есть несколько пунктов выбора:

-Начать новую игру
-Продолжить текущую игру
.
.
.
-Выход

И вот при нажатии "-Начать новую игру" - запускается первый уровень игры.
Далее по ходу игры нажимаем по нужде ESC, и выходим в вышеупомянутое меню. Теперь перед нами стоит выбор:
-Начать новую игру
-Продолжить текущую игру
Вот с продолжить игру проблем нет, при наж ESC - Timer.Enabled:=false;
При нажатии -Продолжить текущую игру Timer.Enabled:=true;

А как начать новую игру, учитывая то что перед выбором нужно либо сохранить текущую игру - с целью продолжения игры, либо замочить процесс уже при нажатии ESC (что мне не нужно). Ведь начать новую игру, значить
греатить поверх текущей, а это сами понимаете чем вылезит.


 
NikeOLD   (2004-01-20 09:59) [1]


> А как начать новую игру, учитывая то что перед выбором нужно
> либо сохранить текущую игру - с целью продолжения игры,
> либо замочить процесс уже при нажатии ESC (что мне не нужно).
> Ведь начать новую игру, значить
> греатить поверх текущей, а это сами понимаете чем вылезит.

Хрень какая-то!
Никаких проблем не вижу. При выходе из игры, ты все свои спрайты уничтожаешь где-то, так? Ну так прибей их и создай заново.
Если не подходит и спрайты живут и убивать их не надо все время работы программы (как кубики в пятнашках) просто переинициализируй все значения. И не надо ничего мочить: нажал ESC - сохранил (если требуется), выбрал новую игру - переинициализировал, или загрузил - опять же переинициализировал. Вся проблема.


 
ZAROLF ©   (2004-01-20 10:27) [2]

Вот при нажатии на "Начать новую игру"
происходит всё так:

procedure TMainForm.SpeedButton9Click(Sender: TObject);
begin
//убиваем все спрайты на карте
life1:=0;
life2:=0;
life3:=0;
life4:=0;
life5:=0;
life6:=0;
life7:=0;
life8:=0;
life9:=0;
life10:=0;
life11:=0;
life12:=0;
life13:=0;
life14:=0;
life15:=0;
life17:=0;
life18:=0;
life19:=0;
life20:=0;
life21:=0;
life25:=0;
Gun.Dead;
pixel.Dead;
pixel2.Dead;
pixel3.Dead;
//ставим плеера на место
with TPlayer(Player) do
begin
x:=320;
y:=192;
Z:=1;
end;
//А вот здесь проблема с созданием спрайтов повторно
MainForm.FormCreate(FormObject);
end;

Может знаешь как MainForm.FormCreate(FormObject); запустить
последовательно после уничтожения спрайтов.


 
Darthman ©   (2004-01-20 10:58) [3]

MainForm.OnCreate(nil);


 
ZAROLF ©   (2004-01-20 11:43) [4]

>Darthman ©   (20.01.04 10:58) [3]
>MainForm.OnCreate(nil);
-----------------------------------------------------------------
В перемешку с MainForm.OnCreate(nil); спрайты не хотят удаляться, и получается раздвоение - старого и нового OnCreate.
Вообще геморой.


 
NailMan ©   (2004-01-20 13:02) [5]

Смешно.

Делаешь так:

Procedure TMainForm.InitializeScene;
begin
...
//здесь пишешь инициализацию всех своих объектов и плауера
...
end;

Procedure TMainForm.Clear;
begin
...
//здесь пишешь убиваение всех своих объектов и плауера(код ты привел)
...
end;

Procedure TMainForm.OnCreate(Sender:TObject);
begin
InitializeScene;
end;


При нажатии кнопки делаешь:

MainForm.Clear;
MainForm.InitializeScene;


При закрытиии формы делаешь:

MainForm.Clear;

И вообще уже созданую форму ты не сможешь пересоздать, темболее так MainForm.FormCreate(FormObject);



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
14-1083608530
Ricks
2004-05-03 22:22
2004.05.23
Чемпионат Мира по Снукеру


8-1078606910
Yuri Btr
2004-03-07 00:01
2004.05.23
Проблема с установкой ф-ии через BASS_ChannelSetSync


7-1081601554
Rustamonline1
2004-04-10 16:52
2004.05.23
Создание массивных процедур


1-1084140499
CraKerX
2004-05-10 02:08
2004.05.23
Как менять свойства объекта созданного динамически?


3-1082961282
}|{yk
2004-04-26 10:34
2004.05.23
XML + FireBird