Здравствуйте! К сожалению, у меня сейчас нет мейкера под рукой, так что опишу без картинок. Если что-то непонятно, спрашивайте.
VaNyuHa пишет:
как платформам поставить условие, что если все ящики стоят на определённых платформах, то происходит действие?
Нужно использовать переменные. В переменные записать координаты и создать проверку условия, что координаты X и Y ящика и платформы равны. Проверку удобно выполнять в параллельном событии.
Алгоритм примерно такой:
- Создайте новое событие, задайте ему триггер «Параллельно». Это значит, что событие будет постоянно выполняться в фоновом режиме и не будет мешать другим событиям. Оно будет проверять, все ли ящики на месте, если все — делать что-то при победе.
- С помощью команды «Переманная» (на 1 странице команд событий) можно записать в переменную координаты «X карты» и «Y карты» для клетки, на которой стоит событие. В поле «Переменная» оставьте «Одна», справа от «Одна» щёлкните по полю выбора переменной. Выберите какую-то незанятую переменную, назовите её «X зол. ящ. 1». В разделе «Операнд» выберите «Данные игры». Щёлкните по полю справа от «Данные игры», выберите «Персонаж» [там два поля «Персонаж», нужно второе], выберите Нужное событие и данные о ней: «X карты». Переменная — это такая штука, которая может хранить число. Можно создать сколько угодно переменным и дать им разные значения. Координата «X карты» — это количество клеток от самой левой клетки до нужной по вертикали, координата «Y карты» — это количество клеток.
- Создайте по две переменных (X и Y) для каждого ящика («X зол. ящ. 1», «Y зол. ящ. 1», «X зол. ящ. 2», «Y зол. ящ. 2» и т.п.), присвойте им командой «Переменная» в событии координаты «X карты» и «Y карты» соответствующих ящиков. Для этого повторяйте прошлый шаг столько раз, сколько нужно.
- Если платформа сделана событием, сделайте то же самое для платформ (создайте по две переменных на платформу и запишите «X карты» и «Y карты» этих платформ). Если платформа сделана не событием (а просто поставлена на карту), можно не создавать переменную — просто посмотрите координаты платформы в редакторе: в режиме редактирования ивентов щёлкните по клетке, и координаты будут показаны внизу окна. Запишите их где-то на листике.
- Создайте ещё одну переменную «Число правильных платформ» и присвойте ей значение 0. Мы будем её увеличивать для каждой платформы. (Учтите, что код будет выполняться в фоновом режиме постоянно, раз за разом. Поэтому нужно сбрасывать значение до нуля, иначе оно станет слишком большим: код от предыдущего выполнения будет мешать.)
- Используйте команду «Ветвление условий» и сделайте проверку, что X первого золотого ящика равен X первой золотой платформы. Появится команда условия, внутри которой можно вводить команды, которые выполнятся, только если условие верно.
- Внутри первого ветвления условий поставьте второе такое же ветвление, но сравните Y первого золотого ящика с Y первой платформы.
- Внутри двух ветвлений (после проверки и на X, и на Y) добавьте команду «Переменная» и поставьте ей увеличение («+») переменной «Число правильных платформ» на 1.
- Повторите то же для других комбинаций ящиков и платформ (первый зол. ящ. и вторая зол. платформа; второй зол. ящ. и первая зол. платформа; второй зол. ящ. и вторя зол. платформа; серебрянный ящик и серебрянная платформа).
В результате код начинает с нуля и увеличивает переменную до числа ящиков, стоящих на нужных платформах.
Так как событие выполняется на каждом шагу игры, переменная «Число правильных платформ» всегда будет хранить число нужных платформ. Можно сделать какое-то событие с проверкой этой переменной в условиях. Или же в самом параллельном событии проверять её с помощью «Ветвления условий», если оно больше или равно 3 (количеству платформ на карте) — тогда что-то делать.
Да, такой подход немного ручной (если переменный и платформ много, то проверок будет много). Но это самый простой для понимания подход. Если у вас будет много переменных и платформ, можно попробовать другие подходы:
- если платформы не движутся, можно приписать платформам опр. регионы и проверять регион в месте событий (тогда уменьшится число проверок, вместо [зол. ящ. 1+ЗП1, ЗЯ1+ЗП2, ЗЯ2+ЗП1, ЗЯ2+ЗП2] получим [зол. ящ. 1 + регион 1, зол. ящ. 2 + регион 1]),
- можно вынести часть проверок в общее событие,
- можно вынести часть проверок в плагин на JavaScript'е.
Но сначала попробуйте то, что я описал выше. Он немного топорный, но позволяет лучше понять, как работает мейкер, а потом можно будет перейти к более продивинутым вариантам.
Если что-то непонятно, спрашивайте!