avatar

Платформер-экшен в Scirra Construct для начинающих (часть 2)

опубликовал в Construct Classic
В первой части мы сделали основу невидимой, а теперь продолжаем.

Давайте сделаем так, чтобы когда ГГ передвигался воспроизводилась соответствующая анимация. Для этого нам нужно добавить объект Mouse & Keyboard (мышь и клавиатура), для этого переходим в Layout editor (редактор уровня) (рядом с редактором событий):

Двойной щелчок по свободному полю, и выбираем объект Mouse & Keyboard:

Insert new object

Переходим в события. Создаём новое событие (двойной щелчок в редакторе событий), выбираем объект basisGG, а в следующем окне переходим во вкладку Platform:

Создаём новое событие

И там выбираем Is on ground (если на земле). Теперь для этого события создаём под событие, двойной клик по маленькой, голубой полоске под этим событием (именно по полоске, а не по надписи) и выбираем New sub event (новое под событие):

New sub event
В открывшемся окне выбираем объект basisGG, переходим во вкладку Platform и там выбираем Is moving (если движется):

Platform: Is moving

В результате:



Создаём действие к событию Is moving, жмём новое действие:



Выбираем ГГ, и дальше выбираем Set animation (установить анимацию):



И в следующем окне в ковычках пишем название той анимации которая должна воспроизводиться, в моём случае я пишу «moving»:

Set animation
(кликните для увеличения)

Жмём финиш, результат:



Вот что мы сделали: если основа на земле и основа движется, то включить анимацию ходьбы. Теперь нужно сделать так что бы если основа на земле и она НЕ движется, то воспроизводится анимация стойки. Просто копируем созданное ранее под событие Is moving, жмём правой кнопкой мыши по левой части события, и выбираем Copy (копировать):



Потом по свободному полю и Paste (вставить). Результат:



Теперь жмём правой кнопкой по только что скопированному событию, и выбираем Invert condition (инвертировать):



А в действии, название анимации изменяем на «Stop»:



При инвертировании события, событие принимает своё противоположное значение. В нашем случае событие: если основа движется то… а в инвертированном виде: если основа НЕ движется то… Если мы сейчас запустим игру то увидим что анимиция воспроизводится правильно, но ГГ не поворачивается налево, исправляем. Для начала переходим в редактор уровня, кликаем по ГГ и слева в свойствах опускаемся в самый низ, во вкладке Angle(угол) ставим галочку перед Auto mirror(авто-зеркало):



Если этого не сделать, то при нажатии клавиши «влево» ГГ будет поворачиваться вверх тармашкой. Переходим в редактор событий. Двойной клик, выбираем объект мышь и клавиатура, дальше выбираем Key is down? (клавиша зажата?):



Дальше выбираем клавишу Left arrow(стрелка влево):



И жмём финиш, мы сделали событие: если клавиша «стрелка влево» зажата то… Создаём действие напротив этого события, выбираем ГГ и дальше Set angle(установить угол):



Дальше в поле Angle(угол) пишем 180 и жмём финиш. Результат в событиях:



Теперь скопируйте это событие и вместо клавиши Left arrow (стрелка влево) выберите Right arrow (стрелка вправо), а в действии, в поле Angle(угол) вместо 180 впишите 0. Результат:



Всё, теперь ГГ нормально поворачивается. Теперь давайте сделаем так чтобы при прыжке воспроизводилась анимация прыжка, а при падении анимация падения. создаём новое событие, выбираем основу, и во вкладке Platform выбираем Is jumping(при прыжке):



Создаём действие к этому событию, выбираем ГГ, потом Set animation(установить анимацию) и пишем название анимации прыжка, т.е я пишу «Jump»:

Set animation
(кликните для увеличения)

Жмём финиш. В свойствах анимации прыжка снимите галочку с Loop(зацикленный) и установите скорость анимации более подходящюю по вашему мнению (я поставил 20). Переходим в события, создаём событие, выбираем основу, и во вкладке Platform теперь выбераем Is falling (при падении):



И создаём действие к этому событию, выбираем ГГ, потом Set animation(установить анимацию) и пишем название анимации падения, т.е я пишу «falling»:

Set animation
(кликните для увеличения)

Жмём финиш. У анимации падения в свойствах тоже настройте скорость(я поставил 20) и снимите галочку с Loop. При запуске анимация работает, но анимация падения, как-то не очень корректно воспроизводится, это потому что центры у анимации прыжка и падения находятся в разных местах, так вот у обоих анимаций (прыжок и падение) ВО ВСЕХ КАДРАХ, установите центр по одинаковым координатам, например я взял по X 16, а по Y 49 (и вы тоже так сделайте). Чтобы изменить центр, два раза кликните по первому кадру анимации (откроется редактор) выберете Hot spot (красная точка) и вверху прописывайте координаты по X и по Y:



Переключаться между кадрами можно здесь же в редакторе:



После того как вы расставите центры во всех кадрах анимаций прыжка и падения всё будет отображаться нормально. Вот исходник того что получилось на данном этапе.

Часть 1
Часть 2 (читаете)
Часть 3
Продолжение следует...

PDF версия

0 комментариев

Чтобы оставить комментарий необходимо .