Теперь подошла очередь разместить личинок в нужных местах и настроить логику их поведения.
Для этого можно сделать двумя способами:
— скопировать со второго слоя личинку и вставить в нужное место локации первого слоя
— разместить в нужных местах пустышку и задать логику запуска личинок на места расположения пустышек.
Лучше пользоваться вторым способом, здесь мы его и рассмотрим. Вам ничего не мешает использовать первый. Пустышка можно добавить в окне «Default».
Пропишем для неё логику. Данная пустышка будет заменяться на первую личинку из второго слоя.
Как видно из рисунка, к пустышке добавили не сам 3d объект, а его скелет. Запустим игру и посмотрим результат.
В нашем случае личинка оказалась перевёрнутой по си X (у вас результат может быть другим). Если подобная ситуация появилась, то решается она простым способом – поворотом самой пустышки. В данном случае повернём пустышку по оси X на .
Запустим игру. Если личинка оказалась выше или ниже платформы, то можно простым перемещением пустышки редактировать положение объекта.
Размер личинки можно менять с помощью регулирования размера пустышки. Если на скелете личинки прописана логика проигрывания бесконечно раз (Конец цикла) анимации движения, то личинка будет перемещаться в сторону гриба, деформируя своё тела (имитация живого существа).
Если запустить игру, то мы можем наблюдать движение личинки вдоль оси Y даже если не будет опоры в виде платформы. Тут уже можно поступить по разному: оставить как есть, сделать логику исчезновения личинки, когда она доходит до края платформы, разворачивать личинку, когда она дошла до края платформы. Реализуем самый сложный способ из представленных.
Добавим пустышку, которой придадим физику «Твёрдое тело» и сделаем её призраком. Таким образом, данная пустышка будет фиксировать касание, но не будет препятствовать движению объектов.
Теперь пустышка проницаема и зафиксирована в данной точке. Теперь необходимо перейти на второй слой и придать физику 3d модели личинки, которой управляет скелет. Также здесь мы добавим игровое свойство (переменную) «f» и зададим ей тип данных – «целое число».
Теперь перейдём на первый слой и продолжим настраивать логику. На этом слое создадим ещё одну пустышку, её можно создать, скопировав пустышку, которая создаёт личинку «Shift + D». Она будет создавать также личинку.
Так как данная пустышка есть полная копия пустышки, создающей личинку, то она будет создавать также личинку. Тут необходимо сделать так, чтобы она создавала личинку с обратным направлением движения. Для этого просто развернём пустышку по оси Z на .
Итак, подведём предварительное заключение:
— на сцене присутствуют две пустышки по краям платформы, которые создают личинки. Их названия «Пустышка» и «Пустышка.003»
— на сцене есть пустышка с физикой «твёрдое тело» больших размеров, чтобы фиксировать касания личинки об неё. Название «Пустышка.001».
Выделим «Пустышку.001» и зададим логику на касания тела со свойством «f». Данным свойством обладает 3d модель личинки. Если касание произойдёт, то отправим «Сообщение» с темой «ddd» пустышке с именем «Пустышка.003», а также данное сообщение отправим скелету, который управляет личинкой.
Затем перейдём к «Пустышке.003» и изменим её логику, так чтобы она создавала личинку только после получения «Сообщение» с темой «ddd».
Затем, нужно перейти на второй слой и выделить скелет личинки. В нём нужно прописать, чтобы он удалялся при получении «Сообщение» с темой «ddd».
Что же у нас получилось? Получилось вот что:
— «Пустышка» создаёт личинку, которая движется в сторону гриба
— Как только произойдёт касание личинки с «Пустышкой.001», то отправиться сообщение с темой «ddd» на «Пустышка.003» и «Скелет».
— «Пустышка.003», после получения «Сообщение» с темой «ddd», создаст личинку, которая начнёт движение в обратное направление.
— Первая личинка после касания с «Пустышка.001» удалится.
Теперь мы можем скопировать «Пустышка.001» с помощью комбинации «Shift+D» и поставить копию на второй конец платформы. Данная пустышка носит название «Пустышка.002». Здесь необходимо поменять тему сообщения и адресат сообщения. В данном случае, отправлять сообщение нужно объекту «Пустышка» и «Скелет».
Осталось добавить элемент логики для объекта «Пустышка».
Итого возле одной платформы 4 пустышки.
В итоге получим вот такое перемещение личинки по платформе, как показано на рис. 119.
Не забудьте добавить на втором слое скелету логику по удалению при получении второго сообщения также. В «контроллере» нужно поставить «ИЛИ».
Теперь пришла очередь настроить взаимодействие гриба с личинкой. Часто в игровой механике подобных игр применяются такие элементы:
— персонаж сталкивается с противником «нос к носу» и погибает или получает урон
— персонаж падает на противника и уничтожает его.
Воспользуемся данной механикой. Для этого перейдём на второй слой и создадим две пустышки. Одну поставим перед головой личинки, вторую растянем вдоль «спины».
На обе пустышки наложим физику «Твёрдое тело», зафиксируем смещение только по оси Y и сделаем их проницаемыми.
Привяжем каждый из этих пустышек к 3d модельке личинки, комбинацией «Ctrl + P».
Добавим «игровые свойства» для данных пустышек. Для передней, которое имеет имя «Пустышка.004», зададим целочисленное свойство «hp».
Для верхней пустышки с именем «Пустышка.005» зададим целочисленное свойство «lol».
Затем перейдём на первый слой и зададим целочисленное игровое свойство «mush» нашему персонажу.
Настало время добавить логику на взаимодействие. Для гриба добавим сенсор «Столкновение» и выберем, что столкновение будет фиксироваться с объектом, у которого есть свойство «hp». Для данного столкновения пропишем в актуаторе «вызов сцены» и функцию «Перезапуск». Иными словами, как только гриб касается «нос к носу» с личинкой, то сцена перезапускается и прохождение данного уровня начинается с начало.
Затем перейдём на второй слой и выберем пустышку с именем «Пустышка.005» (та что на спине личинки). Добавим сенсор «Столкновение» с объектом, у которого есть свойство «mush». В актуаторе будем вызывать сообщение к объекту «Скелет» с темой «end».
Теперь, чтобы личинка удалилась, необходимо переключиться на скелет и добавить ещё одно сообщение в сенсор к уже имеющейся логике удаления.
Теперь перейдём на первый слой и проверим взаимодействие гриба и личинки. Если гриб сталкивается с личинкой, то игра перезапускается, если падает на личинку, то она удаляется.
Перейдите на первый слой и запустите игру, проверьте правильность работы взаимодействия. Если персонаж не касается личинки, то, в большинстве случаях, это ошибки:
— неправильно настроена логика взаимодействия (перепутаны игровые свойства, нет логических связей в окне логики)
— есть смещение объектов по осям и они не касаются. Поставьте ограничитель по перемещению не нужной вам оси.
Комментариев нет:
Отправить комментарий
Нам важно ваше мнение.