persistent rooms

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / persistent rooms

Страницы: 1  новая тема

Автор Сообщение

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 29-11-2006 14:40
у меня есть две комнаты - menu и room2. room2 - persistent, a menu - нет. Я поиграл в room2 и вышел в menu. Вопрос: как сделать, чтоб в меню при нажатии "start" room2 перезагружалась? (т.е. чтоб все что я натворил в room2 стиралось нафиг)

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 29-11-2006 15:15
А разве room_restart неподойдёт?

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 29-11-2006 15:19
Что-то типа того(вызывай в комнате room2):
if (room_previous = menu)
{
room_persistent = 0;
room_restart()
room_persistent = 1;
}

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 29-11-2006 16:50
а если еще есть и room3, room4, room5, room6 persistent?

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 29-11-2006 17:34
game_restart();

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 29-11-2006 23:16
А у меня перед меню еще и заставка! И я не хочу чтоб заставка игралась второй раз. Помогите пожалуйста!

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 29-11-2006 23:49
да, я про заставку так и думал. Марк про рестарт ничего не писал. Так что:
1)Когда выходишь в меню, делаешь рестарт во всех комнатах.
2)Сохранаешь в отдельном файле начальное место положение всех инстансов, а потом возращаешь их на место, когда будет нужно(заделай скриптами).
3)Что-то делаешь с заставкой, например, как другую программу. Заставка прошла и после execute_program(игра).
Как мне кажеться 3) вариант самый простой, да и он использовался во многих досовских играх(Kyrandia например).

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 30-11-2006 11:30
А у меня перед меню еще и заставка! И я не хочу чтоб заставка игралась второй раз. Помогите пожалуйста!

давай заставка будет играть только в том случае есле в ини файле
будет так:
[zastavka]
play=1
когда заставка проигралась стало так
[zastavka]
play=0
при рестарте будет так:
[zastavka]
play=0
и заставка не проиграется
а в событии (гаме енд) станет так:
[zastavka]
play=1
чтоб при следующем запуске заставка играла

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 02-12-2006 00:20
Когда выходишь в меню, делаешь рестарт во всех комнатах.

как?
Сохранаешь в отдельном файле начальное место положение всех инстансов, а потом возращаешь их на место, когда будет нужно(заделай скриптами).

неудобно, у меня много объектов и много комнат.
Что-то делаешь с заставкой, например, как другую программу. Заставка прошла и после execute_program(игра).

сделаю так, если не получится первое.

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 02-12-2006 00:54
Я думаю, что тебе лучше и легче будет сделать 3) вариант.
Но если, спросил про 1) объясню:
А)Делаешь условие рестарта(любое, например нажатие start game).
Можно сделать проверку, а в первый ли раз делаеться start game, если да, то не надо рестарта(сэкономит время).
Б)Сделай скрипт рестарт, в нём:
заходишь в первую комнату(игровую),

do
{
room_persistent = 0; //если рестарт при персистенте не получиться
room_restart();
room_persistent = 1; //

if(!room_last)
room_next();
}
until(!room_last)
(если комнат вообще не будет, то crash)
(если будут ещё или интро, то и они перезапустяться)

Всё! все комнаты перезагружены.
Но насколько это эффективно или быстротечно - незнаю.
короче, если надо оптимизируете.Идею надеюсь поняли.

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 02-12-2006 16:14
room_next(); - может room_goto_next()?

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 02-12-2006 16:15
Это псевдо код. Room_persistent там тоже подругому. ну надеюсь ты разберёшься(не новичок).

Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 02-12-2006 18:03
Ещё проще можешь копировать комнату перед изменениями, а потом при выходе из комнаты заменять её копированной(т.е. такой какой она была до выхода)

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 07-12-2006 18:06
Ещё проще можешь копировать комнату перед изменениями, а потом при выходе из комнаты заменять её копированной(т.е. такой какой она была до выхода)

как Ang3L сказал проще.

Всем спасибо!

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 07-12-2006 18:06

if(!room_last)
room_next();

только зачем это писать когда и так стоит until?

popww
Группа: Администраторы
Сообщений: 736
Добавлено: 07-12-2006 18:28
if(!room_last)
room_next();

ужасный код

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 08-12-2006 14:07
короче, у меня ничего не получилось (ни первое, ни второе). Так что пусть играется заставка 2 раза.

мастер
Группа: Сообщество GM
Сообщений: 111
Добавлено: 09-12-2006 14:47

if(!room_last)
room_next();

Чёт меня глюкануло, if можете убрать, если кто недогадался.
Если код ужасный, исправь и напиши его нормально. В чём проблема то?
Идею поняли(я про рестарт)?
Что неполучилось? Что делает не так?
И непробовал ли ты делать 2 программы(интро и игра)?

Володька
Группа: Сообщество GM
Сообщений: 1648
Добавлено: 09-12-2006 16:38
И непробовал ли ты делать 2 программы(интро и игра)?

да мне уже не надо... я сделал через загрузку меню через формат .sav

Тут могла быть ваша реклама
Группа: Сообщество GM
Сообщений: 1014
Добавлено: 10-12-2006 17:04
Зря кстати говоря, из личного опыта под конец игры в Войнушке загрузка щла секунд десять, потому что сохранялись все прошлые пройденные комнаты, ну протестируй просто, может твой способ не будет причинять особых проблем

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / persistent rooms

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU