Настройка основной логики игры
Материал из CryWiki Russia
Содержание |
Настройка основной логики игры
Введение
В следующем пошаговом руководстве будет описан процесс создания простейшей миссии, определении того места, где будет начало уровня, создание одного из заданий и загрузка следующего уровня.
Чем более нелинейны задания ваших миссии, тем больше времени нужно потратить на их тестирования, поэтому мы рекомендуем для начала сделать линейный путь геймплея: завершение первой цели запускает вторую цель, конец миссии.
Добавление точки возрождения
В RollupBar, в разделе Objects/Entity из папки Others перетащите сущностл SpawnPoint в оконо перспективы.
Запуск событий
Proximity Triggers
Вы можете использовать триггеры, чтобы активировать различные действия в редакторе и игре. Сейчас мы рассмотрим два из них — ProximityTriggers и AreaTriggers. Вы можете перетащить в окно перспективы любые триггеры из папки Triggers в RollupBar.
Размещение Area Trigger
AreaTrigger делится на две части, на область и триггер. Триггер добавляется обычным путём.
Далее, создайте форму, используя инструмент Shape (находится в RollupBar, в разделе Area), щелкните в четыре любых места и выполните двойной щелчок, чтобы закрыть форму. Привяжите AreaTrigger к Shape, используя функцию Pick, в Shape Parameters.
Добавление логики триггерам
Создание потокового графа
Чтобы определить, что триггер должен делать, нужно создать потоковый граф. Выберите ваш триггер, нажмите кнопку Create в разделе Flow Graph, в свойствах сущности.
Укажите название группы для вашего потокового графа. Сначала хорошо бы разделить свой уровень на слои, а затем дать название вашему потокового графу, которое будет содержат название слоя, который он затрагивает.
Добавление сущности в потоковый граф
В окне Flow Graph щелкните правой кнопкой мыши по пустом полю посередине.
Выберите Add Selected Entity из выпадщего меню.
Удостоверьтесь, что нод ProximityTrigger виден, приблизив используя колёсико мыши или при помощи функции Fit Graph To View.
У нода ProximityTrigger Node слева входные события, и справа, соответственно, выходные события.
Добавление задания миссии
Перетащите сущностт MissionObjective в то место уровня, куда игрок должен отправиться.
Открой Flow Graph, который вы создали ранее, а затем выберите вашу сущность MissionObjective в окне перспективы.
Теперь, добавьте MissionObjective в Flow Graph, щелкнув правой кнопкой мыши в основном окне Flow Graph и выбрав Add Selected Entity.
Соединение сущностей в потоковом графе
Теперь, пододвиньте ваш объект MissionObjective поближе к ProximityTrigger, щелкнув и перетащив рамку объекта.
Как только он на месте, нажмите на порт Enter вашего ProximityTrigger, удерживайте левую кнопку мыши, и перетащите мышь к порту Activate вашего MissionObjective.
MissionObjective имеет несколько других входов и выходов:
- Activate
- 0 означает, что цель не активирована и 1 означает, что она активирована.
- Completed
- Отмечает задание в КПК завершенным.
- Deactivate
- Уберает задание из КПК.
- Failed
- Отмечает задание в КПК проваленным.
- SilentActive
- Активирует задание без отметки на КПК.
- SilentDeactivate
- Отключает задание без отметки на КПК.
Загрузка новой миссии
После того, как игрок завершит своё задание, то давайте сделаем, чтобы был загружен следующий уровень (очевидно, вы может спровоцировать другое задание после первого, но для наших испытания, давайте загрузим следующий уровень).
- Поместите ещё один ProximityTrigger и создайте Flow Graph для него.
- Добавьте нод MissionObjective в этот Flow Graph.
- Соедините выходной порт Enter вашего ProximityTrigger к входному порту Completed вашего MissionObjective.
- Теперь, добавьте нод Mission/EndLevelNew.
- Соедините выходной порт Completed вашего MissionObjective к порту Trigger нода EndLevelNew.
- Выберите нод EndLevelNew и укажите название уровня, который должен быть загружен, в поле ввода.
Результат
Когда игрок войдет в триггер, будет загружена следующая миссия. Примечание: Это работает только в игре — редактор не будет загружать следующий уровень.
Вместо этого вы получите предупреждение в консоли:
[Warning] CCryAction: Suppressing loading of next level 'levelname' in Editor