Сама идея статьи зародилась еще давно, когда один друг попросил помочь: "Хочу научиться свободно пользоваться переменными" - сказал он - "Но не могу понять, как это работает. Может, сделаешь маленький пример-демку, чтобы показать это наглядно?". Я подумала-подумала и быстро набросала небольшой проектик, который мы и будем сегодня разбирать. В процессе написания статьи я его еще и доработала, добавив еще несколько интересных и более простых примеров.
Связь переключателей с переменными.
Но сначала я должна сказать очень важную вещь: переключатели - это частный случай переменных! В прошлой статье я писала о переключателях и говорила, что они могут принимать два значения: включено и выключено, да или нет, 1 или 0, если выражаться языком машин. Так вот, переменные можно совершенно свободно использовать вместе переключателей - они тоже могут принимать разные значения, но их спектр гораздо шире! Кроме единиц и нулей в мейкере переменные могут равняться абсолютно любому другому числу!
Но, конечно, если переменная принимает всего два значения, то наиболее целесообразно использовать переключатели.
Переменные- переключатели.
Для начала заменим некоторые переключатели в прошлом уроке на переменные. Если раньше мы использовали для отображения диалогов, чтобы они не повторялись целых три переключателя, то теперь для этих целей нам понадобится всего одна переменная. Так и назовем ее: «переключалка». Старые переключатели удалим, чтобы все было честно.
Не обращайте внимания на переключатель «погода»! Я потом про него расскажу. А сейчас сначала нужно понять основы. Здесь видно, что можно задавать кроме названия переменной еще и значение, которое она принимает. Можно вычислять, брать значения из другой переменной, задавать случайное число в определенном диапазоне, ну... и много что еще. Сразу оговорюсь, что мы не будем рассматривать каждый из этих пунктов, иначе статья растянется до небывалых размеров. Чаще всего переменные используют для весьма банальных целей, к сожалению, не замечая иных их возможностей, с помощью которых так интересно можно было бы разнообразить игру. Но сейчас мы их будем использовать именно для мелкой цели! Поехали дальше!
Зададим значение 1 — константу для «Переключалки». Затем переходим на вторую страницу и там вместо переключателя активируем переменную, выбираем в выпадающем списке наш переключатель, после чего ставим на проверку циферку 1. Таким образом, в этом случае после переключения на 1, а также при значениях больше 1 мы будем находиться на той странице, где наш герой уже не будет ничего говорить.
Проделаем аналогичную операцию с другими переключателями, заменив их на переменные. Только во втором ряду поставим 2, а в третьем — 3. Не забываем про вторые вкладки. Тестируем — работает. С вашего позволения, я не буду заменять другие переключатели в этом уроке, и так все уже должны понять, что это должно сработать.
Переменные - счетчики.
Давайте перейдем к наиболее часто употребляемому случаю в играх, для которого наиболее целесообразно использовать именно переменные. Это подсчет чего либо. Часто такое бывает, что нужно собрать N чего-то там и принести куда-то там. Мы будем собирать ромашки. Нет, лучше квакушек, то есть лягушек!
Возьмем ивент, выберем для него графику лягушки. Добавим переменную, которая у нас будет считать количество пойманных жаб. В начале любая переменная равна нулю!!! Так что мы смело можем ставить плюс один к только что заданной переменной, и она будет равна единице.
Здесь мы произвели простейшее вычисление. Теперь лягушку надо удалить с игрового поля, чтобы потом её не собрать еще раз, а потом еще раз, и снова, и снова. Это делается с помощью переключателя, как уже нам известно. В данном случае правильнее всего использовать локальный переключатель. Добавим также текст. И не забываем про вторую вкладку.
В результате при нажатии на лягушку, она исчезнет, а в переменной прибавится единица. Так можно несколько раз скопировать жабу. Если вы использовали глобальный переключатель, то не забудьте, что для каждой из них должен быть свой переключатель, иначе они все вырубятся, при первом же касании от любой из лягушек. И ничего не сосчитается, да и вообще это неинтересно. А вот для того, чтобы было интереснее, давайте зададим им движение. Для этого в настройках ивента сделаем выбор:
Там же можем поменять скорость и частоту анимации.
Пришло время проверить, как работают наши счетчики. Для этого запустим нашу игру и начнем ловить лягушек. А потом нажмите F9 прямо во время игры. Эта функция возможна только в тестовом режиме игры, когда мы ее запускаем с редактора. Здесь отображены все значения всех наших переменных и переключателей.
Необычайно полезная вещица, о которой не все знают, да и я даже об этом узнала уже когда почти год проработала в мейкере.
Кроме того, с помощью этой базы данных, вызываемой F9 мы можем прямо здесь переключить всё в нужное нам положение, то есть даже не гоняться за лягушками, а просто проставить нужное значение переменной! В общем, отличный отладочный инструмент!
Но лягушек мы собирали не только для этого, но еще для того, чтобы показать их Джессике — она живет в башне и ждет нас.
Сейчас мы ей зададим проверку, определим сколько мы набрали лягушек. И если их будет ровно 4, то она их возьмет себе и разрешит пользоваться четырьмя кристаллами, которые стоят неподалеку.
Переменные - индикаторы.
Что ж, пришло время заняться кристаллами и погодой. Демка первоначально делалась как раз для этого, и поэтому и получила название «Башня погоды». А потом я даже сочинила небольшой рассказ на эту тему. Если кому интересно, можете почитать. Не знаю, будет ли когда-нибудь такая игра, может, и доберусь когда-нибудь. Но сейчас не об этом.
Кристаллы! Создаем 4 ивента с разноцветными кристаллами. Там выбираем пункт «Переменная», а там при нажатии на разные кристаллы ставим разные числа. И еще я добавила звуковой эффект - шум дождя.
Также прошу обратить внимание на то, что у меня две вкладки. На первой Джессика нам не дает трогать кристалл, там не стоит никакого условия и кристалл размещен стандартно, делается это совершенно по тому же принципу. А вот вторая вкладка поинтереснее будет. Тут задано условие — переменная «квакушки» больше или равна 4. И еще задано мерцание кристаллу с помощью галочки «двигать стоя», таким образом проигрывается его анимация. Также поступаем и с остальными кристаллами.
В результате получилось, что когда мы трогаем первый кристалл — переменная погоды равна 1, второй — 2, третий- 3, четвертый- 4. Сейчас мы находимся внутри дома, и не в курсе, что в это время меняется погода.
Создадим на улице ивент с параллельным процессом, в котором будем проверять, чему равно значение переменной «погода» и в зависимости от этого ставить нужный погодный эффект.
Как ни странно, Шторм выглядит также, как и дождь в ХР. Ну да и ладно.
Еще в проект добавила людей и реплики для разной погоды. Делается это аналогично, или, как говорят некоторые преподаватели, - «Это же очевидно!». Если что, в демке приложено. Основы я рассказала, теперь пора закругляться. Спасибо за внимание!
Заключение.
Ах да, стоит отметить, что то же самое можно было бы сделать по-другому! Это всего лишь один из способов. Я даже не буду спорить, что он самый удобный, хоть и довольно несложный. Главная цель этой статьи - научить пользоваться переменными, чего, надеюсь, я добилась.
Кстати, на похожем принципе базируется система смены дня и ночи, описанная в отдельной статье. Только там на мейкере 2003.
Демка прилагается. В ней могут быть небольшие косяки, но зато все материалы, описанные в этой статье работают исправно.