2D космический шутер: бонусы! Отрицательные эффекты для контроллера игрока
Внутриигровые усиления отлично подходят для кривых сложности и прогресса.
Цель: Предоставить способ негативно повлиять на прогресс игрока, собирая бонусы с отрицательным эффектом.
Бонусы можно использовать как для хороших, так и для плохих сценариев по отношению к игроку.
На изображении, показанном выше, я реализовал негативное усиление, позволив контроллеру игрока заморозить себя на отведенное время.
Давайте посмотрим, как я подошел к функции отрицательного эффекта.
Во-первых, нам нужно получить ссылку на наш Контроллер игрока.
- Проверьте, не является ли игрок нулевым
- Назначить скорость игрока = 0
- Нормализация положения игрока
- Установите для логического значения значение true
Во-вторых, мы создаем тип IEnumerator для вызова в конце нашей функции NegativeEffect.
- Выход возвращается за 5 секунд до деактивации эффекта
- Установите скорость игрока = 3
- Yield возвращает позицию преобразования игрока
- Установите логическое значение в false
После создания этих функций мы можем вызвать NegativeEffect внутри класса PowerUp.
В классе включения у нас есть метод OnCollisionEnter2D для обработки поведения включения.
Для этого мы получаем ссылку на контроллер игрока и передаем коллизию
Мы устанавливаем оператор switch, чтобы структурировать бонусы для активации, когда контроллер игрока сталкивается с ними.
Эта установка позволяет модульной системе повышения мощности легко добавлять и удалять усиления по желанию в зависимости от количества имеющихся у нас усилений.
Итак, теперь, когда мы можем применять отрицательные эффекты к нашему контроллеру игрока, есть много других способов добавить или убрать поведение контроллера игрока с помощью игровой механики.
Далее мы рассмотрим завершение остальных оставшихся игровых функций в следующих статьях.