Конструктор игр Clickteam Fusion
Шрифт:
Если имеются анимации прыжка и падения, заполним и их.
После создания героя мы должны указать его тип перемещения, благо что в программе имеется богатый выбор. Как и в прошлом уроке, мы выставляем тип Platform во вкладке свойств объекта (там, где нарисован синий бегущий человек) и выставляем другие значения скорости, гравитации и силы. Я их выставил по значениям 45, 45 и 80, оставив параметры ускорения – замедления без изменений.
Создадим новый объект – землю для нашего героя. Как и в прошлом уроке, мы можем создать её из вкладки Background – Backdrop, но можно использовать в качестве земли и активный объект. Тогда наше условие соприкосновения (предотвращение падения объекта) будет выглядеть так (Collision – Another object):
Дополнительно
Казалось бы, наш урок должен быть завершён, ведь при запуске проекта по F8 мы увидим корректную работу программы. Однако при создании героя мы использовали движущиеся объекты, а это значит, что при соприкосновения движущейся руки, ноги или иной части героя с более-менее вертикальной плоскостью, герой будет совершать непредвиденные движения, например, подлетать вверх. Герой сможет взбираться на вертикальные стенки, совсем как человек-паук, и существенно нарушить игровой процесс. Проверим это, создав посредине нашей земли выступающий прямоугольник и указав это в редакторе событий (условие, аналогичное остановке объекта с землёй):
Чтобы этого не происходило, укажем для нашего героя Диззи тип перемещения Stop (он изначально таковым и был), и создадим новый активный объект прямоугольной формы, которому мы и присвоим тип Platform и все те же свойства главного героя.
Соответственно в редакторе событий заменим все условия соприкосновения с объектами с Диззи на наш новый прямоугольник. Делаем это просто: в редакторе событий дважды кликаем на иконку Диззи и выбираем вместо него новый объект.
Проверим работу игры. Если при запуске проекта наш прямоугольник сможет перемещаться по земле, продолжим работу и перейдём в редактор событий.
Кликнем снова на надпись New condition и выберем из выпадающего меню пункт Always («Всегда»):
В столбце напротив героя выберем Position – Select Position, а затем в новом окне надпись Relative to:
В новом окне выберем нашего героя – Диззи. Таким образом, анимации нашего героя будут находиться поверх нашего нового прямоугольника.
Теперь, если запустить игру, станет ясно, что осталось направить анимации героя в нужную сторону. Сделаем это, определяя направление движения героя и устанавливая соответствующую анимацию. Если герой стоит, будем присваивать ему анимацию Stopped:
В последующем мы для удобства будем приводить такой листинг (Ctrl– L). Он удобен тем, что показывает нам все действия, которые запрограммированы в редакторе событий. В левой колонке указан номер события, напротив чёрной точки – условия, а ниже с небольшим абзацем – сами действия.
Разберём ещё раз действия нашей программы по условиям.
1: Проверяем соприкосновение нашего основного объекта с типом Platform с землёй. Если он соприкасается, мы останавливаем движение.
2: Проверяем соприкосновение нашего основного объекта с типом Platform с препятствием аналогично пункту 1.
3: Всегда делаем так, чтобы персонаж
с анимациями (Диззи) находился в центре нашего основного объекта.4: Если основной объект, которым мы управляем, стоит, показываем анимацию персонажа Stopped.
5: Если направление движения объекта вправо, при этом объект движется, направляем Диззи вправо, при этом выбираем анимацию ходьбы.
6: Аналогично для движения влево.
Вот и всё, взаимодействие персонажа с окружающим миром закончено. Как обычно, клавиши управления: стрелки лево, право, Shift = прыжок.
Урок 3. Стартовое меню
Если задать себе вопрос, с чего начинается игра, то обычно мы ответим: с меню. Создание стартового меню и выбор пунктов мы и рассмотрим в этом уроке.
Как обычно, создадим новый документ, дважды кликнем левой кнопкой мыши по появившемуся окну и найдём текстовый объект «String». Чтобы его найти быстрее, достаточно ввести начальные буквы в строке поиска.
Объект можно найти и другим способом: кликнуть в правом меню по группе «Text».
Растянем побольше наш объект до размера читаемого пункта и перейдём в окно свойств. Обращаю внимание на слово «Paragraph» в окне свойств – в данном случае мы могли бы ввести несколько вариантов строки через кнопку «New», если бы делали, скажем, игру на разных языках.
Но мы идём дальше в текстовые опции и изменяем тип и размер шрифта. Например, выберем шрифт Tarzan 24-го размера.
Поменяем, чтобы не забыть, и имя объекта. Вместо стандартного «String» напишем имя объекта, пусть это будет «Easy» – лёгкий уровень сложности нашей игры. Кроме него, у нас будут уровни «Medium» и «Hard».
Давайте будем учиться всегда при создании нового объекта менять имя по умолчанию («String», «Active» и др.) на осмысленное, соответствующее функциональности нашего объекта. Поверьте, это очень поможет в дальнейшем!
Выберем пункт «Клонирование объекта» и введём количество строк – 3. Мы видим три одинаковых объекта, но с разными именами в окне свойств. Поменяем имена объектов, как мы только что сделали выше, а затем и текст в самих строках.
Теперь создадим активный объект, который будет у нас в роли переключателя пунктов. Нарисуем в нём, например, оранжевый круг. Снова, как мы вспомним, введём имя объекта.
Теперь поговорим о переменной, которая будет иметь значение текущего уровня. Во-первых, для нашей задачи мы можем использовать глобальные переменные. Они расположены во вкладке «Values» свойств нашего документа (не фрейма!).
Они имеют значения вида «1 – Global Value A», и их можно переименовывать. Например, на рисунке выше мы создали три переменные и указали имя первой из них «Level». Их количество ограничено.
Также, мы можем использовать переменных из свойств объекта. Возьмём, например, наш активный объект, в котором мы нарисовали оранжевый круг, и заглянем в его свойства на вкладку «Values».
Во вкладке расположены переменные объекта. Каждый объект с уникальным именем имеет свой набор переменных. Таким образом, мы имеем неограниченное количество переменных, однако они действуют только в пределах нашего фрейма. В другом фрейме их использовать по умолчанию нельзя.
- Telegram
- Viber
- Skype
- ВКонтакте