четверг, 7 октября 2021 г.

Добавление противников и настройка логики повреждения

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

Для этого можно сделать двумя способами:

— скопировать со второго слоя личинку и вставить в нужное место локации первого слоя

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

Лучше пользоваться вторым способом, здесь мы его и рассмотрим. Вам ничего не мешает использовать первый. Пустышка можно добавить в окне «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».

Настройка логики взаимодействия личинки с персонажем.

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

Настройка логики взаимодействия личинки с персонажем.

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

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

— неправильно настроена логика взаимодействия (перепутаны игровые свойства, нет логических связей в окне логики)

— есть смещение объектов по осям и они не касаются. Поставьте ограничитель по перемещению не нужной вам оси.

Перейти к странице курса

Комментариев нет:

Отправить комментарий

Нам важно ваше мнение.

Установка mLink на Windows, macOS и Linux

mBlock 5 Webpage and mLink Quick Start Guide You can also use mBlock 5 on the web without downloading it. mBlock 5 webpage:   https://ide.mb...