Занятие 7.3 Создание случайных препятствий
Цель: разработать для проекта "Космическая миссия" вкладку логики “Начало миссии”.
Задачи:
- Научиться перебирать объекты в списках
- Закрепить навык тестирования своих проектов
- Закрепить навыки работы с логическими блоками в Blockly
- Закрепить навыки работы с активацией/деактивацией объектов
- Закрепить навыки работы с продвинутыми функциями текста
Что такое циклы и генерация случайных препятствий.
В нашем случае необходимо перебрать элементы из списка Препятствия, чтобы определить какие из препятствий будут активированы, а какие деактивированы на сцене случайным образом.
Для этого мы используем логический блок из категории “Циклы” Для каждого элемента списка X.
Этот блок последовательно перебирает все элементы из списка Препятствия и заканчивает работать, когда элементы из списка заканчивается.
Для каждого элемента генерируется случайное число от 0 до 2, при этом, если это сгенерированное число = 0, то мы деактивируем этот объект.
Таким образом при каждом запуске приложения мы получаем разный состав из препятствий для Ровера.
Завершения создания вкладки Начало миссии.
Финальный результат должен выглядеть так:
Здесь используются элементы интерфейса, которые мы еще не разместили на локации, поэтому, если вы видите незнакомые названия, то вернитесь к этому скриншоту позже (это относится к блокам из интерфейсов управления Маяком и Радаром (“Вычислитель”, “Корректировщик”).
Главное, что необходимо сделать в текущий момент - это установить текст для UI “Задание”:
Задачи:
1. Подвести ровер к маяку для получения координат (избегайте столкновений!).
2. Вычислить оптимальный угол радара для отправки сообщения.
3. Установить контакт с инопланетной цивилизацией.
Нажмите на эту панель для начала миссии.
Напомним, что UI “Координаты” отвечает за информацию от Маяка.
Кроме этого, мы видим новую функцию Деактивация интерфейсов ровера.
Далее нам необходим Блок, который будет управлять логикой старта задания, в момент использования Игроком UI “Задание” активируются функция Активации интерфейсов ровера, эту функцию наряду с Деактивацией интерфейсов ровера мы разберем в следующей вкладке.