Создание персонажа и управления им.
Как я уже говорил, в данной сттье мы рассмотрим не менее популярный жанр игр – платформер. Что же это такое? Проще говоря, платформер – это жанр игры, в которой вам нужно бегать и прыгать, проходить различные уровни.
Ну что ж, давайте приступим. Открываем нашу программу и создаем новый проект, теперь переходим к созданию спрайта, я создал 2 спрайта, в одном из них человечек смотрит вправо, а в другом влево (рисунок 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. Закрываем свойства объекта, открываем комнату и расставляем платформы.
Теперь наш персонаж не будет падать в пропасть, а держаться на платформе. Перейдем к созданию движения для него, нажимаем Add Event -> Key Press -> <Right>, перетаскиваем кнопку Speed Horizontal в поле Action, значение hor. speed ставим равное 5 (рисунок 2.3).
Снова нажимаем Add Event -> Key Release -> Right, перетаскиваем кнопку Speed Horizontal в поле Action и ставим значение hor. speed = 0. Аналогично делаем и для левой кнопки. Теперь наш персонаж может двигаться, давайте сделаем так, чтобы он поворачивался в сторону движения, для этого переходим в условие нажатия кнопки вправо и перетаскиваем кнопку Change Sprite в поле Action (рисунок 2.4) и выбираем спрайт человечка, который смотрит вправо. Аналогично делаем для кнопки влево.
Создание анимации персонажа.
Теперь давайте добавим анимацию движения нашего персонажа, для этого создадим копию спрайта, который смотрит вправо и сделаем несколько кадров того, как он будет переменять ноги (рисунок 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), нажимаем ОК.
Вот мы и научили прыгать нашего персонажа по пружинам.
Учим нашего персонажа стрелять.
Для начала мы создадим спрайт и расширим количество его изображений до 50. Затем создадим объект пули. Открываем свойства нашего игрока, Add Event -> Create, переносим кнопку Set Variable, которая находится во вкладке control в поле Action, в поле Variable пишем global.MoveDir в поле Value = 0. Снова переносим эту кнопку, только уже пишем global.Shoot и Value = 0 (рисунок 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, мы переносим кнопку Create Instance, которая находится во вкладке Main1 самой первой, выбираем объект нашей пули. Переносим кнопку Move Fixed, в поле Applies to ставим галочку напротив object и выбираем объект пули, ставим направление влево, а в поле Speed ставим значение 15. Должно получиться как на рисунке 2.9.
Скопируем условия, которые мы создали (global.MoveDir) и вставим их ниже, только в Test Variable global.MoveDir ставим равное 0 и в Move Fixed меняем левое направление на правое. Все должно быть как на рисунке 2.10.
Переходим в свойства пули, нажимаем Add Event -> Other -> Animation End, переносим кнопку Destroy Instance в поле Action, нажимаем ОК. Для того, чтобы пуля вылетала из оружия, переходим в свойства персонажа, условие нажатия кнопки Space и кнопка создания нашей пули, прибавляем значения х и у, повышая их. Таким образом, мы регулируем создание пули на конце оружия.
Вот теперь мы научили нашего персонажа стрелять. Перейдем к созданию противника.
Создание противника.
Для начала создадим спрайт какого-нибудь противника (я нарисовал простую турель, которая показана на рисунке 2.12) и его объект.
Теперь нажимаем кнопку в главном меню программы «Create a path» . Выбираем нашу комнату (рисунок 2.11).
Выбираем место, в котором мы хотим, откуда наш противник начинал бы двигаться, ставим сначала одну точку (она будет зеленным цветом), далее в конце пути ставим еще одну точку (синий цвет), должно получиться как на рисунке 2.12. Создаем нашего врага на уровне.
Переходим в свойства объекта противника, который идем вправо, нажимаем Add Event -> Create, перетаскиваем кнопку Set Path в поле Action, в поле path выбираем наш путь, по стандарту он называется path0, в поле speed ставим значение 3, в поле end выбираем значение "Reverse", нажимаем кнопку ОК и теперь наш противник двигается по заданному пути, т.е. влево и вправо (рисунок 2.13).
Нажимаем Add Event -> Collision и выбираем объект пули. Перетаскиваем кнопку Destroy Instance в поле Action, нажимаем ОК. Теперь, когда мы попадаем в турель пулей, она пропадает. Переходим в свойства нашего персонажа, нажимаем Add Event -> Collision и выбираем нашего противника, переносим кнопку End Game в поле Action.
Создание звука при выстреле.
В главном меню программы нажимаем кнопку Create a Sound, нажимаем выбор звука и выбираем звук выстрела (его вы можете скачать в интернете), нажимаем кнопку ОК (рисунок 2.14).
Открываем свойства нашего игрока, переходим в условие нажатия клавиши Space и переносим кнопку Play Sound, которая находится во вкладке Main1 в поле Action, в строке sound выбираем наш звук выстрела и нажимаем ОК (рисунок 2.15).
Теперь при нажатии на кнопку выстрела, у нас будет воспроизводиться звук выстрела. В следующей статье мы рассмотрим второй вариант создания платформера, с использованием языка программирования.