26-12-2024Массивы Теория
Итак, массивы можно использовать как обычные переменные, если вы присвоите чему-либо массив с целым числом. Помните пример из первого урока, где нам нужно было создать десять квестов? Чтобы это сделать, нам понадобится минимум сорок действий (на один квест - создать квест, назначить переменную, создать условие квеста, назначить переменную). Не так уж много для десяти квестов. Однако, получается, нам надо создать целых 20 переменных! А чтобы их создать, надо зайти в меню переменных, нажать "Создать новую", написать название, выбрать тип! Слишком много действий, и их можно сократить.
Создаём две переменные - Quests и QuestsR. В обоих ставим галки на "Массив" ('Array'). Теперь при создании первого квеста в качестве переменных используем Quest[1] и QuestR[1], при создании второго - Quest[2] и QuestR[2] и так далее. Всё просто.
*На этом моменте вы можете попробовать выполнить первое задание из практики.
Гораздо интереснее, как мы можем использовать эти массивы дальше, кроме как в качестве обычных переменных.
Как уже говорилось выше, вместо просто числа мы можем использовать целочисленную переменную. Представим, что мы решили сделать три вида погоды на карте, которые будут сменять друг друга через минуту. Сначала создаём массив типа 'Weather Effect' ("Погодный эффект"). Затем целочисленную переменную ('Integer'), пусть это будет 'int'. При запуске карты создаём действия:
Создать погодный эффект=Дождь Set Weather[0]=Последний созданный погодный эффект Создать погодный эффект=Снег Set Weather[1]=Последний созданный погодный эффект Создать погодный эффект=Туман Set Weather[2]=Последний созданный погодный эффект
Теперь создаём триггер, который запускается каждую минуту, его действия: Выключить погодный эффект Weather[int] Если (int меньше 2) (сравнение целых чисел), то (Set int=int+1), иначе (Set int=0) Включить погодный эффект Weather[int]
Объяснение: Итак, у нас есть три погодных эффекта, создающиеся в начале игры: дождь (Weather[0]), снег (Weather[1]) и туман (Weather[2]). Когда мы их создаём, они не включаются сразу, за это отвечает отдельный триггер по включению и выключению погодных эффектов. Каждые пять секунд срабатывает триггер, который выключает Weather[int]. Переменная int изначально равна нулю, а затем мы её меняем следующими действиями триггера: Когда int меньше двух, то int увеличивается на один, таким образом, Weather[int], например, из Weather[0], то есть дождя, "превращается" в Weather[1], то есть в снег. Иначе (если int уже равно двум) мы обнуляем переменную, чтобы включался эффект Weather[0]. Обновлённый эффект мы и активируем третьим действием. Таким образом, погода меняется каждую минуту. Если мы хотим сделать десять погодных условий, тогда наше "если" должно выглядеть так - (int меньше 9).
Практика
1. С помощью массива юнитов создайте трёх пехотинцев. Через 3 секунды одновременно увеличьте первого в размере на 200%, второго на 250% и третьего на 300%. 2. Создайте два триггера: один запускается вместе с картой, другой срабатывает каждые 3 секунды, уберите у второго галку "Изначально включён" ('Initially On'). В первом триггере с помощью массива юнитов создайте трёх пехотинцев. После этого в этом же триггере создайте ещё одно действие - 'Trigger - Turn On (Второй триггер)' ("Trigger - Включить (Второй триггер)"). Задача: по очереди с промежутком в три секунды увеличить размер каждого пехотинца на 200%. При этом Wait'ы ("Ждать") использовать нельзя. Также не забудьте для оптимизации выключить этот триггер, когда все три юнита поменяют свой размер.
|