Конструктор игр Clickteam Fusion
Шрифт:
Здесь мы можем задавать скорость смены кадров (причём можно указывать нижний и верхний порог), количество повторений или, если кадры меняются всегда, то указать цикл.
Давайте попробуем анимировать нашего героя и заполнить анимации Stopped и Walking. У меня сохранились анимации персонажа старой игры про Диззи для ZX Spectrum, которые я и использую.
И хотя для понимания нашего урока это необязательно, в будущем мы обязательно будем использовать этот навык.
Для начала нам нужно
Если установлен чекбокс Sprite sheet, то мы сможем вырезать кадры из одного рисунка, предварительно установив ширину и высоту каждого кадра (строка ниже).
Откроем Import (Ctrl– O) – импортировать изображение или набор анимаций, укажем путь, а также дополнительные опции, как представлено на рисунке.
Дополнительно мы можем при импорте осуществить Crop (в последующем нажатием на иконку или горячими клавишами Ctrl-K), установить точку отсчёта координат и «активную» точку, а также произвести импорт выделенной части кадра.
После импорта перейдём из вкладки Frames во вкладку Directions Options и установим цикл и скорость смены кадров, например, в 15.
Аналогичные действия произведём и с серией кадров Walking, только сделаем это уже для направлений «вправо» и «влево».
Заполненные кадры анимации отмечены на окне слева чёрными точками, а незаполненные – контурными.
Если имеются анимации прыжка и падения, заполним и их.
После создания героя мы должны указать его тип перемещения, благо что в программе имеется богатый выбор. Как и в прошлом уроке, мы выставляем тип Platform во вкладке свойств объекта (там, где нарисован синий бегущий человек) и выставляем другие значения скорости, гравитации и силы. Я их выставил по значениям 45, 45 и 80, оставив параметры ускорения – замедления без изменений.
Создадим новый объект – землю для нашего героя. Как и в прошлом уроке, мы можем создать её из вкладки Background – Backdrop, но можно использовать в качестве земли и активный объект. Тогда наше условие соприкосновения (предотвращение падения объекта) будет выглядеть так (Collision – Another object):
Дополнительно добавим к нашей скупой поверхности траву, создав её в качестве ещё одного активного объекта, разместим её над землёй и растиражируем на всё оставшееся незаполненное место через функцию Duplicate.
Казалось
Чтобы этого не происходило, укажем для нашего героя Диззи тип перемещения Stop (он изначально таковым и был), и создадим новый активный объект прямоугольной формы, которому мы и присвоим тип Platform и все те же свойства главного героя.
Соответственно в редакторе событий заменим все условия соприкосновения с объектами с Диззи на наш новый прямоугольник. Делаем это просто: в редакторе событий дважды кликаем на иконку Диззи и выбираем вместо него новый объект.
Проверим работу игры. Если при запуске проекта наш прямоугольник сможет перемещаться по земле, продолжим работу и перейдём в редактор событий.
Кликнем снова на надпись New condition и выберем из выпадающего меню пункт Always («Всегда»):
В столбце напротив героя выберем Position – Select Position, а затем в новом окне надпись Relative to:
В новом окне выберем нашего героя – Диззи. Таким образом, анимации нашего героя будут находиться поверх нашего нового прямоугольника.
Теперь, если запустить игру, станет ясно, что осталось направить анимации героя в нужную сторону. Сделаем это, определяя направление движения героя и устанавливая соответствующую анимацию. Если герой стоит, будем присваивать ему анимацию Stopped:
В последующем мы для удобства будем приводить такой листинг (Ctrl– L). Он удобен тем, что показывает нам все действия, которые запрограммированы в редакторе событий. В левой колонке указан номер события, напротив чёрной точки – условия, а ниже с небольшим абзацем – сами действия.
Разберём ещё раз действия нашей программы по условиям.
1: Проверяем соприкосновение нашего основного объекта с типом Platform с землёй. Если он соприкасается, мы останавливаем движение.
2: Проверяем соприкосновение нашего основного объекта с типом Platform с препятствием аналогично пункту 1.
3: Всегда делаем так, чтобы персонаж с анимациями (Диззи) находился в центре нашего основного объекта.
4: Если основной объект, которым мы управляем, стоит, показываем анимацию персонажа Stopped.