Среда, 12 Января 2011 11:42

Смена дня и ночи

Автор  AnnTenna
Оцените материал
(1 Голосовать)

Смена дня и ночи

Автор - AnnTenna
Перенос в Энциклопедию - James

Введение

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

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

Содержание

  1. Введение
  2. Свойства
  3. Отсчитываем время
  4. Делаем нужное освещение
  5. Реакция на время суток
  6. Запуск

Свойства

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

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

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

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

  • 0 - Утро
  • 1 - День
  • 2 - Вечер
  • 3 - Ночь

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

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

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

К содержанию


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

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

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

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

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

К содержанию


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

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

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

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

К содержанию


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

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

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

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

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

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

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

К содержанию


Запуск

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

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

К содержанию


Демка прилагается! Скачать

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

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

Прочитано 6583 раз Последнее изменение Среда, 12 Января 2011 12:15

7 комментарии

Авторизуйтесь, чтобы получить возможность оставлять комментарии

Форум Последние темы форума

Нет сообщений для показа

Миничат помощь - на форуме!

Последнее сообщение: 8 часов, 33 минут назад
  • avatar
    Masamune : And yes - you're right about that girl.
  • avatar
    Masamune : *this
  • avatar
    Masamune : I was talking about thus: «link»
  • avatar
    breezae : Masamune-sama, what you mean? I said that it is horrible to meet that girl... so what are you talking about?
  • avatar
    breezae : хосспати... это ж надо, по собственному желанию в калеки записаться... куда катиться молодёж?
  • avatar
    Allerent : А я не купил вие чудо нету денег =( , и да Джеймс это жутко обидно. Вот я долбанную термодинамику здаю , а вот физры нет ибо есть знакомства у предков в МинЗдраве (Городском естественно)
  • avatar
    James : Полтора часа назад начался бета-тест The Secret World и у меня есть ключ. Но, увы, вместо того, чтобы посмотреть на эту игру, мне приходится учить материал к самому абсурдному явлению в школе - теоретическому зачёту по физкультуре. Обидно...
  • avatar
    AnnTenna : блиин ничего не понимаю(
  • avatar
    Masamune : «link»
  • avatar
    Agckuu_Coceg : Screw the rules, I have money.
  • avatar
    Masamune : You know the rules and so do I
  • avatar
    Masamune : We're no strangers to love
  • avatar
    breezae : God bless the one, who will meet this girl face-to-face on a dark small street...
  • avatar
    Masamune : Now THAT's what I call "tsundere": «link»
  • avatar
    sando : «link»
  • avatar
    Allerent : О боги хаоса , ещё одно недоразумение в смертном теле. Кряк скачать нет?
  • avatar
    MJuice : Скажите код активации RPG Maker VX!!!
  • avatar
    AnnTenna : после нескольких зависаний удалось все-таки запостить на главную
  • avatar
    AnnTenna : отбой, голосование закончилось))
  • avatar
    AnnTenna : Нароод, голосуйте, сегодня последний день! Ваш голос может стать решающим! «link»
  • avatar
    breezae : Boring, huh? It is always boring here...
  • avatar
    Masamune : О! Так сегодня, оказывается, "День Фрилансера"... Впервые слышу. Что ж... поздравляю что ли всех фрилансеров. Freelance FTW!
  • avatar
    Masamune : Gee... It sure is boooring around here...
  • avatar
    Allerent : О нихнал тогда оставлю как есть.
  • avatar
    Agckuu_Coceg : Особенно в играх.
  • avatar
    Agckuu_Coceg : Волна вампиромании прошла несколько лет назад, вместе с манией на зомби.
  • avatar
    Allerent : тавить? Сейчас же волна вампиромании , и боюсь меня могут не так понять , он же не вампир, а маг крови.
  • avatar
    Allerent : Блин только сейчас понял что по скиллам , внешнему виду и двум формам Алекс вампир а не асура .... Кровь пьёт , летучих мышей сумонит , имеет хуман и анхуман форму ,а по причине того что он задрот и девственница ещё и солнце не особо переносит. По вашему что то менять или так и ос
  • avatar
    Allerent : TilesetMaker такая удобная прога , а я даже и не знад о существовании оной.
  • avatar
    Allerent : Да ничего страшного , зато я в Питере кроме каналов ещё цирк и штук 7000 - 7500 клоунов увидел (прозел на семинар AmWey).
  • avatar
    AnnTenna : поздно ты, конкурс уже на стадию голосования перешел..
  • avatar
    marenight : С возвращением! И - с праздником!
  • avatar
    Allerent : Всех с прошедшим великим днём , моя вернулся.
  • avatar
    marenight : Сижу и думаю - делать демоверсию мне пока рано, но - нужно что бы кто-то оцекнил удаётся ли в достаточной мере выдерживать стиль текста...
  • avatar
    James : Если кто не заметил - у нас там голосование в конкурсе злодеев идёт. Настоятельно рекомендую ознакомиться и проголосовать, а то как-то совсем глухо...
  • avatar
    BERUDA : sando: большое спасибо за подсказку)
  • avatar
    misha : как я понял это счётчик коментариев которые ты оставляешь к картинекам в галерее файлам в архиве и коментарии к новостям с главной страници
  • avatar
    LarryCS : мм, а что это такое, справа Меню автора. И тама "У вас 2 опубликованных комментариев"?
  • avatar
    AnnTenna : УРААА!
  • avatar
    misha : ВСЕХ С 9 МАЯ
  • avatar
    sando : BERUDA, находим materialbase (верхняя панель, tools) жмем импорт (вставляем нужную графику, в вашем случае баттлер, четвертая строка сверху), закрываем, заходим в database, enemies и меняем у нужного монстра графику (либо change maximum и добавить монстра к уже существующим).
  • avatar
    BERUDA : Очень прошу!Т_Т Подскажите, как поставить импортированных мною врагов в битву((? Ибо ставятся только стандартные((( Maker XP v.1.04
  • avatar
    ryoyuyalex : Выложил кавер на КапКома! Зацените плиз, нароооод! =)
  • avatar
    Agckuu_Coceg : ...си будут применять новый эффект.
  • avatar
    Agckuu_Coceg : Хотя, теоретически можно даже обходиться одним айтемом и коммон ивентом, который при использовании применяет созданный эффект на пользователе, но в этом случае необходимо ограничить ношение созданного айтема до одного - потому что иначе все созданные айтемы при перезапи
  • avatar
    Agckuu_Coceg : Nope. Я эти эффекты использую как что-то вроде зелий, только их нельзя носить и выпивать по дороге - они активируются сразу при создании. Иначе бы мне пришлось создавать несколько тысяч айтемов, а кому это надо...
  • avatar
    Allerent : Agckuu_Coceg зачем тебе столько эффектов? Для брони и оружия что ли?
  • avatar
    Agckuu_Coceg : Про блокираторы и визуальное оформление я молчу ввиду того, что это делается по дефолту.
  • avatar
    Agckuu_Coceg : Общее влияние трёх копмонентов на одну из шести статистических переменных колеблется от +100 до -50, в зависимости от выбранного набора. Каждый из наборов влияет на три-четыре из этих переменных, на каждую своим образом.
  • avatar
    Agckuu_Coceg : Учитывая тот факт, что второй ряд идентичен первому, у меня получается (24*12*2)-1 различных эффектов из (24*12^2)-1 различных наборов чисел.

Только зарегистрированные пользователи могут отправлять сообщения.