2D космический шутер: бонусы! Отрицательные эффекты для контроллера игрока

Внутриигровые усиления отлично подходят для кривых сложности и прогресса.

Цель: Предоставить способ негативно повлиять на прогресс игрока, собирая бонусы с отрицательным эффектом.

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

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

Давайте посмотрим, как я подошел к функции отрицательного эффекта.

Во-первых, нам нужно получить ссылку на наш Контроллер игрока.

  • Проверьте, не является ли игрок нулевым
  • Назначить скорость игрока = 0
  • Нормализация положения игрока
  • Установите для логического значения значение true

Во-вторых, мы создаем тип IEnumerator для вызова в конце нашей функции NegativeEffect.

  • Выход возвращается за 5 секунд до деактивации эффекта
  • Установите скорость игрока = 3
  • Yield возвращает позицию преобразования игрока
  • Установите логическое значение в false

После создания этих функций мы можем вызвать NegativeEffect внутри класса PowerUp.

В классе включения у нас есть метод OnCollisionEnter2D для обработки поведения включения.

Для этого мы получаем ссылку на контроллер игрока и передаем коллизию

Мы устанавливаем оператор switch, чтобы структурировать бонусы для активации, когда контроллер игрока сталкивается с ними.

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

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

Далее мы рассмотрим завершение остальных оставшихся игровых функций в следующих статьях.