Найти тему
Саня Ковл

Создание платформера.

Оглавление

Создание персонажа и управления им.

Как я уже говорил, в данной сттье мы рассмотрим не менее популярный жанр игр – платформер. Что же это такое? Проще говоря, платформер – это жанр игры, в которой вам нужно бегать и прыгать, проходить различные уровни.

Ну что ж, давайте приступим. Открываем нашу программу и создаем новый проект, теперь переходим к созданию спрайта, я создал 2 спрайта, в одном из них человечек смотрит вправо, а в другом влево (рисунок 2.1).

Рисунок 2.1.
Рисунок 2.1.

Теперь создадим спрайт какой-нибудь платформы, чтобы наш персонаж мог прыгать по ней и не проваливался вниз. Переходим к созданию объекта нашего персонажа. Создаем новый объект, присваиваем ему спрайт человечка, который смотрит вправо. Нажимаем Add Event -> Step -> Step, перетаскиваем кнопку Set The Vertical Speed в поле Action (рисунок 2.2) и расставляем значения Speed=10 (скорость падения), нажимаем ОК. Теперь наш игрок падает вниз, но чтобы он падал на какую-нибудь поверхность, создадим объект платформы, переходим в свойства объекта нашего игрока и нажимаем Add Event -> Collision -> платформа. Перетаскиваем кнопку Set The Vertical Speed в поле Action, ставим значение Speed=0. Закрываем свойства объекта, открываем комнату и расставляем платформы.

Рисунок 2.2.
Рисунок 2.2.

Теперь наш персонаж не будет падать в пропасть, а держаться на платформе. Перейдем к созданию движения для него, нажимаем Add Event -> Key Press -> <Right>, перетаскиваем кнопку Speed Horizontal в поле Action, значение hor. speed ставим равное 5 (рисунок 2.3).

Рисунок 2.3.
Рисунок 2.3.

Снова нажимаем Add Event -> Key Release -> Right, перетаскиваем кнопку Speed Horizontal в поле Action и ставим значение hor. speed = 0. Аналогично делаем и для левой кнопки. Теперь наш персонаж может двигаться, давайте сделаем так, чтобы он поворачивался в сторону движения, для этого переходим в условие нажатия кнопки вправо и перетаскиваем кнопку Change Sprite в поле Action (рисунок 2.4) и выбираем спрайт человечка, который смотрит вправо. Аналогично делаем для кнопки влево.

Рисунок 2.4.
Рисунок 2.4.

Создание анимации персонажа.

Теперь давайте добавим анимацию движения нашего персонажа, для этого создадим копию спрайта, который смотрит вправо и сделаем несколько кадров того, как он будет переменять ноги (рисунок 2.5).

Рисунок 2.5.
Рисунок 2.5.

Но есть одна проблема, он слишком быстро меняет ноги, поэтому сделаем замедление анимации. Нажимаем Animation -> Stretch и ставим значение равное 10. Закрываем и аналогично делаем для движения влево.

Теперь переходим в свойства нашего игрока, в условии нажатия кнопки вправо (влево) в Change Sprite меняем спрайт на тот, который мы сделали для анимации. Наш персонаж теперь может при движении передвигать ногами, а при остановке не двигать ими.

Давайте научим его прыгать. Для этого нарисуем какую-нибудь пружину, сделаем ей анимацию опускания и создадим ее объект. В свойствах игрока нажимаем Add Event -> Collision -> пружина, перетаскиваем кнопку Set Gravity в поле Action, в поле Direction ставим значение 90, а в поле Gravity=-20. Теперь переходим в свойства пружины, нажимаем Add Event -> Other -> Animation End, перетаскиваем кнопку Set Gravity, в области Applies to ставим галочку напротив object и выбираем нашего игрока (рисунок 2.6), нажимаем ОК.

Рисунок 2.6.
Рисунок 2.6.

Вот мы и научили прыгать нашего персонажа по пружинам.

Учим нашего персонажа стрелять.

Для начала мы создадим спрайт и расширим количество его изображений до 50. Затем создадим объект пули. Открываем свойства нашего игрока, Add Event -> Create, переносим кнопку Set Variable, которая находится во вкладке control в поле Action, в поле Variable пишем global.MoveDir в поле Value = 0. Снова переносим эту кнопку, только уже пишем global.Shoot и Value = 0 (рисунок 2.7).

Рисунок 2.7.
Рисунок 2.7.

Переходим в условие нажатия кнопки влево. Переносим эту же кнопку (Set Variable), пишем в поле Variable – global.MoveDir, а в поле Value пишем 1. Аналогично делаем с условием нажатия кнопки вправо, только в поле Value пишем 0.

Нажимаем Add Event -> Key Press -> <Space>, туда же переносим кнопку Set Variable, в поле Variable пишем global.Shoot, а в поле Value пишем 1. Аналогично делаем и с Key Release -> <Space>, только уже в поле Value пишем 0.

Теперь переносим в поле Action кнопку Test Variable. В поле Variable пишем global.MoveDir, в поле Value пишем 1, нажимаем ОК. Теперь переносим кнопки Start Block и End Block в поле Action, этим мы показываем, что создается условие – если MoveDir=1, то... Переносим кнопку Test Variable в поле Action между нашими блоками, в поле Variable пишем global.Shoot, а в поле Value – 1. И так же после этой кнопки переносим два таких блока. Если вы все сделали правильно у вас должно получиться как на рисунке 2.8.

Рисунок 2.8.
Рисунок 2.8.

Теперь в промежуток, который указан на рисунке 2.8, мы переносим кнопку Create Instance, которая находится во вкладке Main1 самой первой, выбираем объект нашей пули. Переносим кнопку Move Fixed, в поле Applies to ставим галочку напротив object и выбираем объект пули, ставим направление влево, а в поле Speed ставим значение 15. Должно получиться как на рисунке 2.9.

Рисунок 2.9.
Рисунок 2.9.

Скопируем условия, которые мы создали (global.MoveDir) и вставим их ниже, только в Test Variable global.MoveDir ставим равное 0 и в Move Fixed меняем левое направление на правое. Все должно быть как на рисунке 2.10.

Рисунок 2.10.
Рисунок 2.10.

Переходим в свойства пули, нажимаем Add Event -> Other -> Animation End, переносим кнопку Destroy Instance в поле Action, нажимаем ОК. Для того, чтобы пуля вылетала из оружия, переходим в свойства персонажа, условие нажатия кнопки Space и кнопка создания нашей пули, прибавляем значения х и у, повышая их. Таким образом, мы регулируем создание пули на конце оружия.

Вот теперь мы научили нашего персонажа стрелять. Перейдем к созданию противника.

Создание противника.

Для начала создадим спрайт какого-нибудь противника (я нарисовал простую турель, которая показана на рисунке 2.12) и его объект.

Теперь нажимаем кнопку в главном меню программы «Create a path» . Выбираем нашу комнату (рисунок 2.11).

Рисунок 2.11.
Рисунок 2.11.

Выбираем место, в котором мы хотим, откуда наш противник начинал бы двигаться, ставим сначала одну точку (она будет зеленным цветом), далее в конце пути ставим еще одну точку (синий цвет), должно получиться как на рисунке 2.12. Создаем нашего врага на уровне.

Рисунок 2.12.
Рисунок 2.12.

Переходим в свойства объекта противника, который идем вправо, нажимаем Add Event -> Create, перетаскиваем кнопку Set Path в поле Action, в поле path выбираем наш путь, по стандарту он называется path0, в поле speed ставим значение 3, в поле end выбираем значение "Reverse", нажимаем кнопку ОК и теперь наш противник двигается по заданному пути, т.е. влево и вправо (рисунок 2.13).

Рисунок 2.13.
Рисунок 2.13.

Нажимаем Add Event -> Collision и выбираем объект пули. Перетаскиваем кнопку Destroy Instance в поле Action, нажимаем ОК. Теперь, когда мы попадаем в турель пулей, она пропадает. Переходим в свойства нашего персонажа, нажимаем Add Event -> Collision и выбираем нашего противника, переносим кнопку End Game в поле Action.

Создание звука при выстреле.

В главном меню программы нажимаем кнопку Create a Sound, нажимаем выбор звука и выбираем звук выстрела (его вы можете скачать в интернете), нажимаем кнопку ОК (рисунок 2.14).

Рисунок 2.14.
Рисунок 2.14.

Открываем свойства нашего игрока, переходим в условие нажатия клавиши Space и переносим кнопку Play Sound, которая находится во вкладке Main1 в поле Action, в строке sound выбираем наш звук выстрела и нажимаем ОК (рисунок 2.15).

Рисунок 2.15.
Рисунок 2.15.

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