Жизненный цикл игрового объекта - Примеры, статьи - Разработка игр на Game Maker (Simple Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Примеры, статьи » Жизненный цикл игрового объекта
Жизненный цикл игрового объекта
Bercut Дата: Воскресенье, 22.01.2012, 06:09 | Сообщение # 1
Болтун
Группа: Проверенные
Сообщений: 197
Статус: Offline
Доброго времени!
И снова здравствуйте! Не хотел создавать новую тему, но подходящей не нашёл
Как сказано в справке и вычитано на буржуйских форумах, все игровые объекты управляются событиями.
Вообщем, к делу. Сабж.
Представляю вашему вниманию схему жизненного цикла игрового объекта:

Если, что не понятно или нужны какие-то изменения или добавления - обращайтесь, милости прошу.
Спасибо за внимание!

З.Ы.: Новичкам крайне полезно
Прикрепления: 2730199.png(24Kb)


Fast, like fire!
 
Ang3L Дата: Воскресенье, 22.01.2012, 15:11 | Сообщение # 2
Каждый 5й пост мой
Группа: Админы
Сообщений: 2677
Статус: Offline
Bercut, мало инфы - это раз. Добавить бы описаний, пояснений, предположений, советов и т.д.
Во-вторых, лично у меня используется упрощённая схема. Только Create, Step и Draw. И нетрудно догадаться что за чем следует.

P.S.: Конечно, схема полезная и обязательна к изучению всем незнающим порядок вычисления. Хотя исторически сложилось что во всех движках идет единоразово Create (Init), потом циклично идут Step (Update) и Draw (Render). Все остальное уже идет дополнительно и может быть сделано по разному.


Blogpost
 
Bercut Дата: Воскресенье, 05.02.2012, 23:23 | Сообщение # 3
Болтун
Группа: Проверенные
Сообщений: 197
Статус: Offline
Да, конечно добавлю некие пояснения, например, что объекты вызываются последовательно в цикле, сначала step, а потом draw.
Что пользовательские и событие создания/удаления срабатывают сразу, сразу в текущие событие. Например в событии шага вызывается функция удаления данного объекта,
то этот объект удаляется именно в событии шага, а потом, если ещё существуют объекты в массиве, то переходит к другому и вызывает у него событие шага.

Добавлено (05.02.2012, 23:23)
---------------------------------------------
Внимание, внимание!
Мы знаем, что у нас есть объекты, которые имеют поле id, оно уникально.
Так вот, все эти игровые объекты хранятся в специальном массиве. Каждый фрейм (frame - игровая единица времени), можно назвать его главным игровым циклом,
вызывает ПОСЛЕДОВАТЕЛЬНО для каждого объекта те самые события.
Сначала идёт событие CREATE (Вызывается единожды (но можно вызвать сколько угодно раз, потому что это всего лишь функция, об этом объясню позже)).
Если в этом событии в каком либо объекте мы создадим объекты, то система для них вызовет тоже событие CREATE и добавит их в список.
САМОЕ ИНТЕРЕСНОЕ:
На каком событии мы создадим объект, такое и произойдёт.
Пример:
oбъект: Button
событие: Draw
код:
Code
               instance_create(0, 0, Shape)

Объект Shape будет добавлен в системный список объектов,
потом у него произойдёт событие создания, а потом событие рисования, ададада, не событие шага и не остальные события, а
именно рисования, потому что общий системный цикл сейчас вызывает именно событие рисования.
То есть что получается? :
Все эти события всего лишь функции, которые вызывает система.


З.Ы.: Если всё понятно, могу рассказать про генерацию событий.


Fast, like fire!

Сообщение отредактировал Bercut - Воскресенье, 05.02.2012, 23:23
 
DeatHSoul Дата: Воскресенье, 05.02.2012, 23:58 | Сообщение # 4
Сказал что-то
Группа: Проверенные
Сообщений: 53
Статус: Offline
Интересно наблюдать за тем, как кажущаяся очевидной для тебя вещь оказывается открытием для кого-то другого. Впрочем, это хорошо, открытия всегда приносят приятные впечатления. Я вот долго бился, пока мне дошло, что событие step вызывается в порядке object_index, а не id. happy
 
Qvant Дата: Понедельник, 06.02.2012, 00:09 | Сообщение # 5
Сказал что-то
Группа: Пользователь
Сообщений: 97
Статус: Offline
На практике надо проверять а не в теории :
Для ГМ-ШТМЛ в exe выполняется:
show_message("Create")
show_message("Draw")
show_message("Step")
даже если убрать Create , то первое рисование всегда срабатывает быстрей шага ! не ждали biggrin

а для html
show_message("Create")
show_message("Step")
show_message("Draw")
 
Ang3L Дата: Понедельник, 06.02.2012, 22:31 | Сообщение # 6
Каждый 5й пост мой
Группа: Админы
Сообщений: 2677
Статус: Offline
Quote (Bercut)
Все эти события всего лишь функции, которые вызывает система.

Ну что-то вроде того. Вот моя интерпретация. На самом деле, события это функций, но вызываются они специфичным способом. Можете прочитать про Callback-функций, но они могут подпортить вам много нервных клеток, я предупредил. wink Там используются сложные схемы указателей для гибкой настройки.


Blogpost
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Примеры, статьи » Жизненный цикл игрового объекта
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход