Создание платформера в GM
ВСТУПЛЕНИЕ
Все мы, наверно, когда-то играли в какие либо игры и к нам рано или поздно приходило желание сделать свою игру. Возможно, у вас возникло желание создать небольшую игру, но вы не знаете не единого языка программирования? Конечно, если у вас есть Интернет, вы можете найти уроки по программированию C++, Delphi и других языков. Вы можете долго учить их и потом делать небольшие игры. Но у меня возникает вопрос: «ЗАЧЕМ?». Если умные люди создали массу конструкторов и готовых движков для ваших игр. Кстати, на сайте http://gcup.ru вы сможете найти буквально все конструкторы, что изобрели люди. Давайте остановимся на известном всем Game Maker by Mark Overmarse.
Итак, ищем на этом сайте эту программу, и качаем. Желательно купить лицензию за 20$, чтобы иметь больше возможностей. Без лицензии вы не сможете создать полноценную игру (хотя это можно, но проще будет с лицензией). Ознакомьтесь с примерами, которые даны вместе с программой, прочитайте основы программы в файле помощи. Вы наверно спросите – зачем нам эта статья, если всё подробно расписано в официальном файле помощи к игре? Да затем, что в официальном файле помощи описаны только коды и основы их пользования, а я расскажу, как сделать игру определенного жанра.
Вы ознакомились с Game Maker, теперь обязательно выучите хотя бы основы GML. Хотя ниже описанный пример platf_primer.gm6 будет использован преимущественно на кнопках (триггерах).
ПЛАТФОРМЕРЫ
Платформеры – это, пожалуй, один из самых распространённых жанров в приставках Dendy, Sega и просто в играх на компьютеры. Суть его заключается в том, что вы ходите как бы по «платформам» и после прыжка, гравитация притягивает вас обратно к «платформе». Часто вам придется прыгать с одной «платформы» на другую. Вообще жанр платформеров очень обширный, это могут быть и 2D-шутеры с кровавой резнёй, или просто развесёлые платформеры наподобие Соника или Tiny Toon.
Для лучшего понимания создания платформера, к статье прилагается пример платформера platf_primer.gm6.
Начнём с создания персонажа. Создаём объект, называем например obj_player. Задаём ему движения в разные стороны. В кнопке Left проверяем столкновение объекта, как это показано в примере, и собственно смещение персонажа по оси x на координаты -4. Тоже самое и Right, только координаты +4. И не забываем об изменении спрайтов. Красным шрифтом на рисунках отмечены мои текстовые объяснения действий.
ПРИМЕЧАНИЕ: ЕСЛИ НА РИСУНКАХ ДЛЯ КООРДИНАТ УКАЗАНЫ ЗНАКИ + ИЛИ – , ЭТО ЗНАЧИТ ЧТО ПРИ СОЗДАНИИ ДЕЙСТВИЯ НУЖНО ПОСТАВИТЬ ГАЛОЧКУ НА RELATIVE.
Теперь персонаж ходит влево и вправо. Пожалуй, самое важное в этих играх это гравитация, и естественно нужны платформы. Создаём ещё один объект, назовём его obj_platform – это будут наши будущие платформы описанные выше. Обязательно ставим галочку Solid (твёрдый) в obj_platform.
Переходим опять к obj_player. В Step ставим условия, показываемые на скриншоте и в примере:
Здесь так же объясняются все кнопки, для чего они, и что они дают. Я просто хочу, чтобы не бездумно взяли мой пример платформера, и просто вставили свои спрайты. Я хочу, чтобы вы поняли, как это всё работает.
Переменная, отображённая слева, поможет вам ограничить скорость падения до 12 максимум. Это поможет вам избавиться от бесконечного увеличения скорости падения.
Теперь важно сделать прыжок персонажа. Давайте замахнёмся сразу на двойной прыжок.
Чтобы сделать прыжок, нам нужно внедрить переменную. Давайте назовём её jump. Она понадобится нам для установления максимального количество толчков. В условии create создаём переменную jump=0. Переменные создаются выделенной красным цветом кнопкой. Когда вы её перенесёте в «Actions», появится меню. Указывайте там всё, как на скриншоте.
Теперь при создании персонажа переменная будет равняться нулю.
В Событии press (нажать кнопку вверх) создаём такое:
И теперь создаём цепочку действий в касании с объектом obj_platform.
В принципе, основной движок для нашего платформера готов! Но давайте внедрим в него дополнительные функции.
Давайте сделаем лестницы. Лестницы мы сделаем в событиях Step, Up, Down. Создаём новый объект, и назовём его obj_ladder.
В Step создаём следующие действия:
В Up, создаём следующее…
В Down создаём тоже самое, что и в Up, но координату y=-4, надо заменить на y=+4
Лестница готова!!!
Создаём объект врага. Назовём obj_enemy. Врагам в событии Create создаём действие, указанное на рисунке, и ставим в нём всё как указанно на скриншоте.
Ещё нам понадобится объект obj_rotate и сделать его невидимым (убрать галочку Visible).
Во враге создаём событие столкновения с obj_rotate и вставляем следующее действие:
При касании к этому объекту, враг будет менять своё направление, и идти в обратную сторону. То есть так мы устанавливаем области патрулирования врагов.
Чтобы враги могли «убивать» персонажа, нужно сделать систему жизней и здоровья. В Game Maker такая система уже встроена.
В событии Step создаём следующее:
И в событии столкновения с obj_enemy:
Теперь при касании к врагу, у вас будет отниматься одна жизнь.
Тоже самое, как и врага, делаем штыки, только они не двигаются. При касании к ним ставим:
- то есть -1 здоровья. И при касании к штыкам, будет уменьшаться здоровье.
Когда здоровья будет меньше одного, отнимается одна жизнь.
Вот уже можно сделать неплохой платформер. Идём в комнату и делаем уровень. Расставляем блоки, персонажа, врагов и прочее…
Давайте сделаем, чтобы наш платформер был не просто на одной картинке, а был большой уровень, и камера следила за персонажем. Для этого в комнате во вкладке views (виды) делаем следующее:
Hbor и Vbor нужно менять. Это координаты x и y при достижении которых, камера будет двигаться. Например, для вида размером 640х480 можно поставить Hbor:320; Vbor:240. Тогда камера будет следить чётко по центру за персонажем.
Итак, с помощью моей статьи и примера, можно сделать собственную игру жанра платформер. Вам остаётся только сделать уровни! Научившись азам «Game Maker» вы сможете сами понимать, как сделать тот или иной жанр игры. Эта статья рассчитана для новичков. Думаю всё написано доступно. |