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

Я создал атаку для босса, которая заставит его мчаться вниз по экрану 3 раза, пытаясь атаковать игрока. Это было сложнее, чем я ожидал, но, в конце концов, это, вероятно, моя любимая атака для босса.

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

Сначала я создал сопрограмму, которая будет активировать или деактивировать некоторые из моих bools, которые будут вызываться в моем методе BossRush.

По сути, я хочу, чтобы мой босс поднялся наверх один раз и никогда больше после этого. Таким образом, это будет применяться только в первый раз, когда upwardCount int больше 1. Обязательно инициализируйте эту переменную.

Далее давайте создадим наш метод BossRush. Здесь у меня есть несколько булов. Как я уже говорил ранее, я хочу, чтобы мой босс мчался 3 раза, поэтому я создал целое число для rushCount. Я также создал логическое значение bossRush, чтобы указать, что теперь он может рашить.

Теперь я хочу, чтобы мой босс начал мчаться по экрану, поэтому я добавил оператор else, который заставит его мчаться вниз с multipliedSpeed, а затем установит мою canShakeCamera буль к истине. Затем в этот момент вступают в силу различные анимации и эффекты частиц, поэтому, чтобы очистить свой код, я использовал метод и создал условие для метода.

Для моего метода анимации я сначала создам bool.

Затем я могу создать свой метод.

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

Поскольку здесь использовались две разные позиции по оси X (-15 и 0), я создал логическое значение reachedBottom для проверки следующего раздела моего кода.

Здесь, если он достиг нижней части экрана, и логическое значение равно true, и оно достигло нуля по оси Y, оно вычтет единицу из >rushCount. Теперь, если rushCount достигнет нуля, он начнет деактивировать наш cameraShake, анимацию и bossRush. Перед тем, как bossRush становится ложным, я сбрасываю значения, чтобы он мог воспроизводиться снова, как только эта атака будет использована снова. Наконец, я вернул reachedBottom значение false, чтобы он мог снова воспроизвести это условие, но я позаботился о том, чтобы исключить его из условия rushCount ‹= 0, потому что он должен сбрасывается каждый раз, когда босс добирается до нижней части экрана.

Наконец, не забудьте добавить свой метод BossRush в Update, чтобы его можно было вызывать вместе с cameraShake.

И это все для этой атаки. Это был вызов, но я доволен конечным результатом!

В эту игру можно играть на itch.io. Я буду обновлять его часто. Дайте ему играть и дайте мне знать, что вы думаете!