Вы находитесь на странице: 1из 6

Cоздание платформера. Часть 1.

Основы платформера - это объекты, на которые забирается игрок. Тут таких два - Solids и
Platform. Solids - это твердые объекты, по которым можно передвигаться. А Platforms -
объекты, которые игрок может контролировать(передвижение в пространстве). Если под
Platform нет Solid, то платформа падает.

Сперва нам понадобится "поле" для игры. Кликайте.

Вот что Вы увидите:

Рассмотрим все объекты:


Четыре платформы по краям поля разной длины. Объект Flooring.
Две стены, которые не позволяют игроку провалится за поле. Объект Wall.
Игрок.

А теперь посмотрите на "состав" проекта, и скажите, видите ли Вы что-нибудь странное:


Заметили ли Вы что есть "пустой" объект Player, и есть спрайт PlayerImages? Наверное
стоит объяснить, почему все сделано именно так. У прямоугольника в свойствах есть
Platform Movement. А PlayerImages накладывается поверх и отвечает за смену анимаций.
Сделано это для того, чтобы при перемещении игрок выглядел более естественно, также
комбинация анимаций и Platform Movement, видимо, вызывает баги. Обратите внимание
на то, что у Player установлено свойство "Invisible" - он невидим.
Давайте посмотрим анимации у PlayerImages. Кликните на объект в Project Bar, затем на
Animations - Edit. Вы увидите окно с несколькими спрайтами. Кликните Running, и Вы
увидите пять спрайтов:
Запустите игру, и попробуйте перемещать персонажа. Он стоит на месте, верно? Потому
что двигается Player, а он невидим.

На следующем уроке мы решим эту проблему.


Создание платформера - часть 2.

Итак, закончим начатое. Сперва сделаем платформы - платформами, а не спрайтами в


игровом пространстве. Выбираем объект Flooring в Project Bar, затем Edit Behaviors,
даем объекту свойство Solid, это под Attributes. Сделайте то же самое с объектом Wall.
Теперь выбираем объект Player и тем же путем даем ему свойство Platform.
Теперь "прикрепим" объект PlayerImages к Player. Даём объекту PlayerImages свойство
Pin.
Запускаем игру снова. Опять нет движения? Ну, оно на самом деле есть, просто мы его не
видим, так как объект Player, все еще невидимый. Даже если вы сделаете его видимым,
результат будет не очень впечатляющим. Исправим это. Открываем Event Sheet, делаем
вот так:
[attachment=3329926:event_sheet-00[1]

Снова запускаем игру. Теперь персонаж передвигается по платформам, утыкается в стены,


может прыгать. Можете попробовать допрыгнуть до последней платформы.
Давайте попробуем заставить персонажа не шаркать своими ботинками по полу, а бегать.
Условие: Player -> Platform: On moved
Действие: PlayerImages -> Set animation -> for Animation, type in "Running"

Запускаем игру, и видим целых три проблемы: игрок бежит на месте, игрок может бежать
"задом", игрок будет бежать даже если его нос соприкоснулся со стеной. Непорядок.

Для решения проблемы с бегом назад нужно сделать анимацию с бегом назад, очевидно.

Условие: Keyboard -> Key is down -> press the left arrow key
Действие: PlayerImages -> Set mirrored (under 'Animations') (leave 'Mirrored' as is)

Теперь персонаж бежит налево, когда вы нажимаете кнопку "влево". Но после этого он
будет всегда бежать влево, т.е. если Вы нажмете "вправо", то он снова станет бежать
задом, только теперь в другую сторону. Исправляем:

Условие: Keyboard -> Key is down -> press the right arrow key
Действие: PlayerImages -> Set mirrored -> and this time select 'Not mirrored'

Решаем проблему со стеной:

Условие: Player -> Platform: Is by wall -> Side: left


Действие: PlayerImages -> Set animation -> type in "Standing"

Player -> Platform: Is by wall -> Side: right


Action: PlayerImages -> Set animation -> "Standing"

Теперь сделаем так, чтобы персонаж отходил от стены более естественно:


[attachment=3329981:add_cond...on-00[1]

Условие: Player -> Platform: Is moving

[attachment=3329989:invert_c...on-00[1]

Делаем то же самое с Platform has wall to right. Готово!

Теперь заставим персонажа нормально стоять на месте:

Условие: Player -> Platform: On stopped


Действие: PlayerImages -> Set animation -> "Standing"

Все три недочета исправлены.

Конец второй части.

Прикрепленные изображения