Найти тему
Мастерская Wood’Zap

Моя первая игра. Передний слой уровня. Первая часть. Главный герой и окружение

На переднем слое у меня расположились все основные объекты моей игры.

Всё довольно примитивно, не спорю. Моя цель была освоить несколько механик и принципов взаимодействия объектов, ну и создать что-нибудь простое. Со всеми целями я справился (правда не везде ещё навёл лоск, так что косяки в первой сборке ещё присутствуют) и остаётся только поделиться подробностями.

Главный герой))) (Hero)
Главный герой))) (Hero)

Первым делом я создал главного героя нашей игры. Забавный головастик в красном свитере и бирюзовых штанах - чем не герой?)

-3

Обратите внимание, что я не задал ему никакого типа движения. Наш герой - статичный объект. Сейчас объясню почему.

Если сделать действующим объектом именно нашего героя, то из-за его анимации (а она у него есть) он будет преодолевать некоторые препятствия не так, как я бы этого хотел. Всё дело в том, что при соприкосновениях с другими объектами точками соприкосновения будут просчитываться только те пиксели, что в данный момент с ними контачат. А это приведёт к тому, что наш герой будет перескакивать небольшие преграды.

Пример такой преграды
Пример такой преграды

Кроме статичного положения я так же добавил несколько анимаций.

Ходьба по земле

-5

Карабканье вверх

-6

И пара дополнительных кадров для прыжка и падения

-7

Они не анимированы, меня и так всё вполне устроило.

Чем же мы тогда управляем на самом деле?

На самом деле мы управляем объектом в виде прямоугольника, который полностью соответствует габаритам нашего героя и взаимодействует с другими объектами

Hero 2
Hero 2

Именно этот прямоугольник имеет статус подвижного активного объекта

-9

Я выбрал тип движения Platform и четыре основных направления, остальные параметры на снимке выше.

Как же тогда получается, что наш герой при старте занимает место этого прямоугольника, а сам он пропадает? Всё просто! В настройках прямоугольника я убрал галочку Visible at start, а в редакторе событий создал условие

-10

Это условие означает, что наш герой всегда находится там же, где находится чёрный прямоугольник.

Запускаем игру:

-11

Мой герой стоит, так как уже прописаны остальные условия. Если же вы только начали и сделали лишь героя и его, скажем так, хитбокс, то он упадёт вниз и скроется за пределами экрана, так как у нас нет ни стен, ни пола.

Создадим их. Вернёмся к нашему редактору уровня и добавим пару объектов.

земля с травой (Horizontal)
земля с травой (Horizontal)

Это будет нашим "полом"

поросшая каменная плита (Vertical)
поросшая каменная плита (Vertical)

А это будет нашими стенами.

Добавим их на экран и запустим игру. Даже если вы разместили их под героем, то он всё равно провалится через них. Идём в редактор событий и создаём два пункта

Жмём new condition, кликаем по hero 2 > collisions > another object > выбираем Horizontal. Далее в квадрате напротив hero 2 > movement > stop
Жмём new condition, кликаем по hero 2 > collisions > another object > выбираем Horizontal. Далее в квадрате напротив hero 2 > movement > stop

Повторяем то же самое для Vertical. При желании можно оба этих действия перетащить зажав левой кнопкой мыши в новую строку, тем самым создав копию условия, а потом поменять объект двойным кликом мыши.
Повторяем то же самое для Vertical. При желании можно оба этих действия перетащить зажав левой кнопкой мыши в новую строку, тем самым создав копию условия, а потом поменять объект двойным кликом мыши.

Теперь, если запустить игру, наш герой будет взаимодействовать с препятствиями. Но лишь упрощённо. Анимации движения у нас пока не будет. О добавлении анимации я расскажу в следующий раз.

Вторая часть =>