Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
6-1081193765
aikidzin
2004-04-05 23:36
2004.05.23
Скачивание с WWW


3-1082958667
din
2004-04-26 09:51
2004.05.23
Как создать запрос


14-1083853190
Lamer-13
2004-05-06 18:19
2004.05.23
Голупый вопрос, но все же...


7-1081772922
bigsnake
2004-04-12 16:28
2004.05.23
Кракозяблы в справке


14-1083737054
Goida
2004-05-05 10:04
2004.05.23
Как пишется рекомендательное письмо?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский