Этот урок описывает создание механики автоматической стрельбы с ограничением количества патронов в магазине. Материалы, включая домашнее задание, доступны по ссылке [ссылка на сайт].
Добавление переменных в Blueprint
В Blueprint объекта «ружье» добавим две переменные:
- Количество патронов в магазине: Переменная типа Integer (целое число), определяющая максимальное количество патронов. Значение по умолчанию: 35.
- Скорострельность (Rate of Fire): Переменная типа Float (вещественное число), определяющая частоту выстрелов в секундах. Значение по умолчанию: 0.1 (10 выстрелов в секунду). Увеличение значения уменьшает скорострельность.
Реализация автоматической стрельбы
Используем событие Input Action (например, связанное с правой кнопкой мыши). Добавим булеву переменную IsFiring, которая принимает значение true при зажатии кнопки и false при отпускании.
- При нажатии кнопки устанавливаем IsFiring в true.
- При отпускании кнопки устанавливаем IsFiring в false.
- Используем функцию Delay с длительностью, равной значению переменной Rate of Fire. После задержки проверяем значение IsFiring.
- Если IsFiring равно true, вызываем событие Fire для выстрела. Этот цикл повторяется до тех пор, пока IsFiring не станет false.
Ограничение количества патронов
В функции Fire реализуем ограничение количества патронов:
- При каждом выстреле уменьшаем значение переменной «Количество патронов в магазине» на 1.
- Перед вызовом события Fire проверяем: если количество патронов больше 0, выстрел производится; иначе — стрельба прекращается. Эта проверка служит условием для события Fire.
Отображение количества патронов
Добавим на экран текстовый Widget для отображения оставшегося количества патронов:
- Создадим текстовый Widget.
- Используем функцию Get для получения значения переменной «Количество патронов в магазине».
- Преобразуем значение Integer в строку.
- Установим полученную строку в качестве текста Widget’а.
Количество патронов будет динамически обновляться на экране.