Similar presentations:
4. Бонусы
1.
ПовторНа прошлом уроке мы
⮚ Научились двигать фон
⮚ Добавили стены (препятствия)
⮚ Добавили турели
⮚ Научили турели стрелять только
при приближении игрока
2.
Сегодня на уроке…⮚ Добавим бонус скорости
атаки
⮚ Добавим дополнительные
орудия нашему игроку
3.
БонусыДля того, чтобы добавить бонусы,
нам нужно сначала придумать,
какие типы бонусов мы можем
реализовать в нашей игре
4.
БонусыОдин из бонусов может давать
дополнительную пушку для
нашего космического корабля
5.
БонусыОдин из бонусов может давать
дополнительную пушку для
нашего космического корабля
Другой бонус может увеличивать
скорострельность пушек
6.
БонусыОдин из бонусов может давать
дополнительную пушку для
нашего космического корабля
Другой бонус может увеличивать
скорострельность пушек
Создание бонусов зависит только
от вашего воображения
7.
Бонус скорострельностиМы начнём с чего-то попроще
Реализовать бонус
скорострельности будет очень
легко!
8.
Бонус скорострельностиДля начала создайте сам
бонус – объект, который
нам нужно будет
подобрать, для получения
дополнительной скорости
атаки
Дайте ему коллайдер и
сделайте его триггером
(чтобы он не
взаимодействовал с
кораблями и пулями)
Делаем триггером
9.
Бонус скорострельностиНовый тег
Также для нашего
бонуса нужно будет
создать и установить
новый тег, с помощью
которого система будет
определять, коснулся ли
игрок бонуса и какой
это бонус
Назовите тег
BonusAttackSpeed
10.
СкрываемUpdate()
Скрываем
Reload()
Используя кнопки –
рядом с функциями и
пр. мы можем
скрывать всё, что
находится внутри них
11.
ВернутьUpdate()
Сокрытый код можно
всегда показать, с
помощью +
12.
При касании стриггером, имеющим
тег BonusAttackSpeed
мы будем уменьшать
время перезарядки на
0.05 секунд (или
любое другое время
по вашему желанию)
А также удаляем
бонус, который
подобрали
13.
Бонус скорострельностиПри правильной и аккуратной
настройке вы сможете сделать
данный бонус весьма
сбалансированным
Мы советуем по умолчанию
ставить скорость атаки на 0.5с и
снижать задержку между
выстрелами на 0.05с за каждый
бонус
14.
Получилось реализоватьбонус? Отлично!
15.
Однако перед этим, унас может возникнуть
неприятный баг с
бонусами скорости
атаки
Сможете ли вы
догадаться, в чём может
быть проблема?
Или, может быть вы уже
столкнулись с какойлибо проблемой?
16.
Бонус скорострельностиПри подборе слишком
большого количества
бонусов, наша задержка
скорости атаки может стать
равной нулю
В таком случае мы рискуем
слишком сильно нагрузить
нашу игру и сломать в ней
баланс
17.
Вернёмся к нашемускрипту и модифицируем
его
18.
Если после подборабонуса время
перезарядки упадёт
ниже значения 0.1, мы
установим это значение
на 0.1
Таким образом 0.1 –
минимальное время
перезарядки орудий
19.
Бонус скорострельностиТеперь, сколько бы мы
не подобрали бонусов, у
наших орудий всегда
есть предел
минимальной задержки
между выстрелами
20.
Бонус скорострельностиРасставьте бонусы на вашем
игровом уровне
Старайтесь устанавливать
бонусы равномерно, и
периодически ставьте их в
труднодоступные для игрока
места, чтобы разнообразить
игру
Игроку придётся
уклонятся от турели,
чтобы получить бонус
21.
Бонус дополнительных орудийА вот реализация
дополнительных орудий
будет немного тяжелее, но
мы с вами обязательно
справимся!
22.
Бонус дополнительных орудийНовый тег
Для начала, как и с
предыдущим бонусом
создайте сам бонус, который
мы будем подбирать
Создайте и добавьте для него
новый тег BonusAddGun
А также не забудьте добавить
коллайдер и сделать его
триггером
Триггер
23.
Бонус дополнительных орудийСледующим шагом, мы
добавим нашему
кораблю
дополнительные пушки,
которые будут стрелять
после подбора бонуса
24.
Бонус дополнительных орудийОбе пушки должны быть частью
игрока
Переименуйте их, для удобства
25.
Теперь вернёмся к коду26.
Давайте вспомним, какработает стрельба
При нажатии на кнопку
атаки и если мы готовы
стрелять, мы создаём
пулю и перемещаем её
к владельцу скрипта
(игроку)
27.
Для начала мы добавим 3новых переменных
shipLevel будет
определять уровень
корабля игрока и
изменять количество
рабочих пушек
gunLeft и gunRight
нужны для сохранения
позиции пушек, чтобы к
ним перемещать пули
28.
Теперь в том же скриптеспустимся немного ниже,
к функции Update()
Не запутайтесь в фигурных
скобках, условиях и функциях
29.
Теперь в том же скриптеспустимся немного ниже,
к функции Update()
Стрельба
одной пушкой
30.
Стрельбу одной пушкоймы уберём в отдельное
условие
Одной пушкой теперь
мы будем стрелять
только если уровень
корабля равен 1
В отдельном
условии
31.
Далее, добавляем новоеусловие:
Если уровень корабля
больше 1, то мы стреляем
из двух пушек
Создаём пулю
Перемещаем к
позиции первой
пушки
Во втором условии указываем
shipLevel > 1 чтобы наши орудия
работали и при более высоком
уровне корабля
32.
Последний шаг –добавить обработку
касания с бонусом
Для второго условия мы не
создаём новую функцию
OnTriggerEnter2D(), а продолжаем
писать в существующей
Повышаем
уровень корабля
33.
Не забываем перетащитьпушки в
соответствующие
переменные в нашем
персонаже
34.
Бонус дополнительных орудийСделали всё правильно?
Если да, то ваш персонаж при подборе
данного бонуса наш корабль начнёт
стрелять с двух орудий
Произошла ошибка? Посмотрите в
консоли, в чём проблема
Также проверьте, нет ли ошибок в коде
35.
Дополнительное задание1) Расставьте новые бонусы на сцене
1) Попробуйте самостоятельно
улучшить бонус дополнительных
орудий как минимум ещё на 1
уровень
36.
Код для стрельбы с трёхорудий
Здесь вместо создания 3го
орудия мы создаём 3ую
пулю в нашем игроке
(transform.position)
Но можно создать и
отдельное орудие
37.
Дополнительное заданиеТеперь подбирая бонусы наш
персонаж становится
серьёзным противником!
Продолжайте работать над
игровым уровнем (или
создайте новый, если первый
вы уже закончили)
Расставляйте турели, стенки
(препятствия) и бонусы
Улучшайте бонусы и
создавайте новые!