Главная страница
    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.46 MB
Время: 0.152 c
1-1083759506
1nDeX
2004-05-05 16:18
2004.05.23
TJPEGImage To String


3-1082975048
Litr
2004-04-26 14:24
2004.05.23
Заполнить поле значением по умолчанию


3-1082978751
john
2004-04-26 15:25
2004.05.23
Подскажите запрос


8-1078455124
fidres
2004-03-05 05:52
2004.05.23
Поисковая система


6-1080549216
Creator
2004-03-29 12:33
2004.05.23
Client и Server Socket





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский