text
Суббота, 08 Января 2011 17:34

Реализация смены дня и ночи на RPG-Maker

Автор
Оцените материал
(2 голосов)

Статья рассчитана на людей, которые уже имеют определенное представление о RPG-Maker 2003. Также она может дать вам общее представление, каким образом делается смена дня и ночи. К статье прилагается демо-версия, в которой реализовано всё, что описано. 

Для начала следует заметить, что такая система, как  смена дня и ночи может быть в игре реализована совершенно по-разному, на RPG-мейкере существует десятки таких способов. Так что я уточняю, что буду рассказывать про свой способ. Сначала я думала, что эта статья будет посвящена смене дня и ночи именно в моей игре «Легенда о Дряньке». Но  в процессе написания,  я нашла у себя в скрипте некоторые неоптимальные вещи, так что решила, что буду рассказывать не точь-в-точь, как было сделано в игре, а так, как я считаю, следует сделать лучше всего.

Свойства.

Начну с элементарного вопроса: чем отличается в первую очередь день от ночи? Правильно - освещением! Днем, как правило, у нас светло, вечером начинает темнеть, а ночью совсем темно.  Цвет экрана настраивается довольно просто.

Еще день и ночь имеют такое свойство, как последовательность. То есть: сначала светает, светло, темнеет, темно, светает, светло, темнеет, темно, светает.. что-то я увлеклась.. короче,  и так далее. Для наглядности,  условно разделим сутки на 4 части: утро, день, вечер и ночь. В «Дряньке» именно такое разделение. Но, вообще, никто не мешает разделить сутки на 2 части: темно и светло, например, или на 24 части по часам, но не будем усложнять…

Сейчас будет важный момент: для реализации смены ночи была использована всего одна переменная!


Назовем ее «смена дня и ночи». Она у нас будет принимать значения:

0 – утро

1 – день

2- вечер

3 - ночь

И, наконец, еще одно немаловажное свойство – это параллельность. День и ночь меняются всегда параллельно с любым происходящим, с течением времени.

Поэтому система смены дня и ночи будет организована у нас как параллельный процесс. Заходим в базу данных игры, открываем вкладку «Общие события».

Назовём событие «день и ночь». Вызывается оно параллельно в течении всей игры.

Отсчитываем время.

Как многие уже поняли, мы будем менять время, а когда пройдет нужный промежуток времени – менять время суток. Отсчет времени я делаю с помощью функции «Ждать».

По истечении нужного промежутка времени нам необходимо менять нашу переменную, и в результате, как мы потом увидим, освещение будет меняться.

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

Таким образом, данная конструкция будет работать в цикле, меняя последовательно значения переменной «0001: Смена дня и ночи»

Делаем нужное освещение.

Но этого нам еще мало для счастья, потому что это не отражается у нас в игре. А для того, чтобы увидеть, как это работает, перейдем на нашу карту, на которой мы желаем это сделать, и там создадим специальный ивент.

Этот волшебный ивент будет работать у нас как источник света, я назвала его «текущая освещенность». Мой способ смены дня и ночи предполагает, что на всех картах, на которых происходит смена дня и ночи, должен стоять такой вот подобный ивент из этого семейства. Конечно, ставим его невидимым, под героем, параллельно. Внутри проверяем значения переменной с помощью ветвления. Если у нас значение переменной равно 0, то это утро – ставим освещенность яркую, Иначе -  если 1, то день – нейтральная освещенность, Иначе, если 2, то вечер – начинает темнеть, Иначе, если 3, то ночь, ставим, чтобы было темно, как ночью.

Этот способ удобен тем, что на разных картах освещенность в зависимости от смены дня и ночи может быть разная. А неудобен тем, что везде нужно проставлять этот ивент, который задаёт освещенность.

Реакция на время суток.

Теперь займемся жителями деревни, которая расположена на нашей карте. Смена дня и ночи не будет выглядеть такой реалистичной, если населяющие игровой мир существа не будут обращать на это никакого внимания. Так что давайте я покажу, как я делаю разную реакцию на смену дня и ночи.

Рассмотрю самый простейший вариант, девушку, которая круглые сутки находится на одном месте.

Как видете, у неё 4 вкладки, на каждой из них написано, чему равно значение переменной смены дня и ночи, и в зависимости от этого она произносит разные фразы. В приложенной демке я добавила еще несколько человек, некоторые из них появляются только в определенное время суток, то есть определенные вкладки у них отсутствуют.

Какая же смена дня и ночи без гостиницы, в которой можно поспать? Вообще то, оно и так уже выглядит более менее похоже, но мы пойдем дальше, и сделаем гостиницу, в которой можно будет отдыхать только ночью, и просыпаться утром.

Здесь мы сначала проверяем, равна ли наша переменная трём, то есть, наступила ли ночь. Если ночь наступила, то предлагаем ночлег, иначе предлагаем зайти попозже. В случае с ночлегом мы не забываем переключать переменную на значение 0 – утро. Иначе получится, что мы не спали.

Также в демке я добавила специальный куст, который по команде игрока может изменить время суток.

Запуск.

Теперь мы можем запустить проект и увидеть это всё в действии! Чего-то, сутки меняются слишком быстро, не так ли? Не проблема, сейчас мы это объясним!

[

Вот, теперь порядочек, всё логично, всё работает!

Если вам нравится - можете не стесняться и брать мои наработки для своих каких-нибудь проектов на RPG-мейкере. Рада, если мой опыт окажется вам полезным.

Напоследок ложка дёгтя: перед тем, как вставлять в игру такую систему как смена дня и ночи, хорошенько подумайте - а надо ли оно? Дело в том, что в определенных случаях эта "фишка" совсем не оправдана и может  даже изрядно испортить игру. Не верите? А вот в "Дряньке" были неоднократные случаи, когда люди жаловались на то, что надоело, как везде темно, а ночью магазины закрыты, ничего не купить, а гостиницу не найти... Так что думайте сами, решайте сами. А как это делать, теперь вы знаете!

Демо-версия всего описанного прилагается вместе с текстом статьи. Для того, чтобы запустить её, вам потребуется установленный RPG Maker 2003 и RTP к нему. 

download

Прочитано 7480 раз Последнее изменение Среда, 22 Июня 2011 22:56
AnnTenna

Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Другие материалы в этой категории: « По ту сторону... О похожести некоторых старых JRPG. »
Авторизуйтесь, чтобы получить возможность оставлять комментарии

Панель входа

Добро пожаловать!

Заходите. Чувствуйте себя как дома.

Мы в контакте

(скорее всего это пойдёт на хостинг)

Опрос о статьях на сайте.

Какие статьи вам наиболее интересны?
 

Это из галереи!

  • shero_6

Проект Phantasy Star... 20ty Years Past участвовал в выставке "Старкон 2015"

А знаете ли вы...

ste2

сайт другаСветлая зона и Академия РПГ Мейкераkn4kn5Плагины для RPG MakerДневник одной нэкоknНовая Реальность Топ Разработка игр