Настройка основной логики игры

Материал из CryWiki Russia

Перейти к: навигация, поиск

Содержание

Настройка основной логики игры

Sandbox Gamelogic image001.jpg

Введение

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

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

Добавление точки возрождения

В RollupBar, в разделе Objects/Entity из папки Others перетащите сущностл SpawnPoint в оконо перспективы.

Sandbox Gamelogic image003.png

Запуск событий

Proximity Triggers

Вы можете использовать триггеры, чтобы активировать различные действия в редакторе и игре. Сейчас мы рассмотрим два из них — ProximityTriggers и AreaTriggers. Вы можете перетащить в окно перспективы любые триггеры из папки Triggers в RollupBar.

Sandbox Gamelogic image005.png

Размещение Area Trigger

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

Sandbox Gamelogic image007.png

Далее, создайте форму, используя инструмент Shape (находится в RollupBar, в разделе Area), щелкните в четыре любых места и выполните двойной щелчок, чтобы закрыть форму. Привяжите AreaTrigger к Shape, используя функцию Pick, в Shape Parameters.

Sandbox Gamelogic image009.png

Добавление логики триггерам

Создание потокового графа

Чтобы определить, что триггер должен делать, нужно создать потоковый граф. Выберите ваш триггер, нажмите кнопку Create в разделе Flow Graph, в свойствах сущности.

Sandbox Gamelogic image011.png

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

Sandbox Gamelogic image013.png

Добавление сущности в потоковый граф

В окне Flow Graph щелкните правой кнопкой мыши по пустом полю посередине.

Sandbox Gamelogic image015.png

Выберите Add Selected Entity из выпадщего меню.

Sandbox Gamelogic image017.png

Удостоверьтесь, что нод ProximityTrigger виден, приблизив используя колёсико мыши или при помощи функции Fit Graph To View.

Sandbox Gamelogic image019.png

У нода ProximityTrigger Node слева входные события, и справа, соответственно, выходные события.

Sandbox Gamelogic image021.png

Добавление задания миссии

Перетащите сущностт MissionObjective в то место уровня, куда игрок должен отправиться.

Sandbox Gamelogic image023.png

Открой Flow Graph, который вы создали ранее, а затем выберите вашу сущность MissionObjective в окне перспективы.

Теперь, добавьте MissionObjective в Flow Graph, щелкнув правой кнопкой мыши в основном окне Flow Graph и выбрав Add Selected Entity.

Соединение сущностей в потоковом графе

Теперь, пододвиньте ваш объект MissionObjective поближе к ProximityTrigger, щелкнув и перетащив рамку объекта.

Как только он на месте, нажмите на порт Enter вашего ProximityTrigger, удерживайте левую кнопку мыши, и перетащите мышь к порту Activate вашего MissionObjective.

Sandbox Gamelogic image025.png

MissionObjective имеет несколько других входов и выходов:

Activate
0 означает, что цель не активирована и 1 означает, что она активирована.
Completed
Отмечает задание в КПК завершенным.
Deactivate
Уберает задание из КПК.
Failed
Отмечает задание в КПК проваленным.
SilentActive
Активирует задание без отметки на КПК.
SilentDeactivate
Отключает задание без отметки на КПК.

Загрузка новой миссии

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

  1. Поместите ещё один ProximityTrigger и создайте Flow Graph для него.
  2. Добавьте нод MissionObjective в этот Flow Graph.
  3. Соедините выходной порт Enter вашего ProximityTrigger к входному порту Completed вашего MissionObjective.
  4. Теперь, добавьте нод Mission/EndLevelNew.
  5. Соедините выходной порт Completed вашего MissionObjective к порту Trigger нода EndLevelNew.
  6. Выберите нод EndLevelNew и укажите название уровня, который должен быть загружен, в поле ввода.

Sandbox Gamelogic image027.png

Результат

Когда игрок войдет в триггер, будет загружена следующая миссия. Примечание: Это работает только в игре — редактор не будет загружать следующий уровень.
Вместо этого вы получите предупреждение в консоли:

[Warning] CCryAction: Suppressing loading of next level 'levelname' in Editor

См. также