Как создать игру в программе game maker

Приветствую всех вас, уважаемые читатели! Ну вот я наконец и добрался до самих уроков по движку. Если вы не читали еще прошлые мои статьи, то понять из данной статьи тоже наверное сможете не многое, если вы пришли прям с нулевыми знаниями. По этому я вам очень бы рекомендовал вернуться сначала к предыдущим статьям, и только потом приступать к прочтению данной. Итак, поехали!

Пробуем создать свой Арканоид

Я всегда всем советую начать изучение движка с создания простой игры. Да я и сам в свое время учился так. Создав 5-6 отличных друг от друга игр вы получите очень хорошую базу знаний по движку.

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

А теперь к делу.

Запускаем наш Game Maker Studio 2.

Стартовое окно

Для начало вам нужно будет зарегестрировать свой аккаунт на официальном сейте YoYoGames , чтобы войти в данный движок. Я об этом вроде говорил ранее.

GameMaker Studio / Урок #1 — Создание RPG игры

Нажимаем «New» , что значит «Новый» , для создания нового проекта. У вас далее появится следующий выбор:

Выбор типа проекта

Тут следует немного остановиться подробнее. Движок GMS2 позволяет создавать игры на своем языке программирования GameMaker Language (GML) либо вообще без написания кода, то есть собирать игру как бы из логических блоков (Drag and Drop). Я бы рекомендовал учиться сразу писать код. Но вы можете конечно попробовать поиграть с блочной системой.

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

Готовим ресурсы для игры

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

Для игры нам будут нужны: бита, мяч, стены и блоки.

Создаем для начала спрайты для них. Я рисовал все сам прямо во встроенном графическом редакторе GMS2, по этому все очень схематично. Красным выделил на что стоит обратить внимание. В основном это размеры спрайта, его имя и где расположен его центр.

Спрайт биты
Спрайт мяча
Спрайт блока
Спрайт стены

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

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

Объекты созданы

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

Далее подготовим комнату и расставим все объекты в ней для первого уровня. Кроме мяча. Мяч мы будем создавать кодом.

Задайте ей размеры 960 пикселей в ширину и 540 пикселей в высоту. Создайте несколько слоев именно того типа, что я пометил стрелочкой (т.е. слои для объектов). Поменяйте им названия. Расположите их в том же порядке что у меня на скриншоте. И далее на каждый слой перетащите и расставьте соответствующие объекты, как они у меня расставлены в комнате.

Т.е. на слой «Walls» , например, расставляем объекты «Wall» и т.д.

Так же можете поменять цвет фона. Для этого просто щелкаете на слой Background и чуть ниже выбираете нужный нам цвет. Но это не обязательно. Можно оставить и изначальный черный.

Читайте также:
H264 в какой программе

Наша созданная комната

Обратите внимание, что мы создали еще и слой «Ball» , но на него ничего не ставим. Мы подготвили этот слой заранее, чтобы потом создать кодом на нем наш мяч (объект Ball).

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

Т.е. при запуске у вас откроется подобное окно:

Наша запущенная, но пока еще «безжизненная» игра

Справились? Поехали дальше!

Начинаем писать логику для игры

Давайте начнем с биты, так как игрок будет управлять именно ей. Щелкнем на объект биты и создадим ей событие шага ( Step ), о котором я писал в прошлых статьях. Создаем именно событие Step , не Begin Step и не End Step . Для чего нужны они, объясню когда-нибудь в последующих статьях. Но запомните, в 95% вы будете использовать именно событие Step из этих трех возможных, так что пока не забивайте голову.

Создаем событие шага для объекта биты

И вот наконец-то у нас открылось окно редактора кода. Как долго же мы шли к этому событию! Для начала, давайте сделаем так, чтобы бита двигалась вправо и влево по нажатию кнопок со стрелками вправо/влево на клавиатуре.

Для этого нам в шаге нужно создать условие, которое бы проверяло, что нажата та или иная клавиша (вспоминаем прошлые статьи опять же). За событие нажатия клавишы в GMS2 отвечает функция keyboard_check_pressed () , где в скобках мы напишем необходимую нам клавишу. Чуть ниже мы к этому вернемся. Так вот, а что именно мы будем делать при нажатии этой клавиши? Просто будем менять X-координату самой биты, т.е. будем прибавлять или отнимать эту координату, тем самым перемещая биту вправо или влево. Итоговый код в событии шага биты у нас будет выглядеть так:

if keyboard_check_pressed(vk_right)
if keyboard_check_pressed(vk_left)

Т.е. если нажата клавиша «стрелка вправо» ( vk_right — это как раз обозначение этой самой клавиши), то x биты прибавит 10 пикселей, а так как ось X в GMS направлена слева-направо , то бита как раз сдвинется вправо. Вот этот код как раз отвечает за прибавление 10 к x: x+=10.

Аналогично для левой стороны. Итак, жмем клавишу для запуска игры, чтобы потестировать. Сделаю оговорку: мы очень часто будем запускать игру для проверки текущего кода, чтобы избежать ошибок на первых порах. Напишем небольшой кусочек, проверим, напишем еще — снова проверим и по такой схеме постоянно. Если возникнет какая-то ошибка, то нам проще будет найти тот участок кода, в котором мы ее допустили.

Протестировали? Хм. Код и правда УЖЕ работает не так, как нам хотелось бы, правда? Т.е. зажав стрелочку вправо, например, бита сдвинется чуть вправо и остановится, пока мы не отожмем клавишу и заново ее не нажмем. Т.е. чтобы нам двигать биту, нам нужно постоянно клацать на клавишу стрелки. Согласитесь, это не очень удобно.

Что же мы сделали не так?

Все дело в том, что мы выбрали не совсем нужную нам функцию нажатия клавиши. Их существует три. Давайте подробнее на них остановимся.

  1. keyboard_check_pressed()
  2. keyboard_check_released()
  3. keyboard_check()

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

Вторая функция аналогична первой, но будет срабатывать только тогда, когда клавишу отжали, именно только в момент отжатия, тоже один раз. Т.е. если мы поменяем в нашем коде функции на эту, то мало, что изменится — бита будет передвигаться на раз, при каждом отжатии клавиши. Т.е. зажав стрелку вправо, например, ничего не произойдет. Но вот когда вы отпустите клавишу, бита сдвинется. Можете сами поменять в коде и попробовать.

Читайте также:
Как запустить программу через консоль java

А вот третья функция будет срабатывать постоянно пока клавиша зажата. Т.е. то, что у нас должно выполниться при нажатии клавиши, по сути будет выполняться каждый шаг.

По умолчанию, GMS2 настроен вроде на 30 шагов в секунду (этот параметр можно будет поменять потом). Т.е. каждую секунду весь код в Step’е будет выполнен от начала до конца аж 30 раз! Соответственно, если мы зажмем и будем не отпускать стрелку вправо при такой функции, то за секунду бита уедет аж на 300 пикселей вправо (30 раз * 10 пикселей сдвиг за шаг).

Меняем код и пробуем:

if keyboard_check(vk_right)
if keyboard_check(vk_left)

Теперь не нужно жмякать на стрелочки, чтобы сдвигать биту каждый раз по чуть-чуть, а просто нажимаем клавишу и наслаждаемся «полетом» биты!

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

if keyboard_check(vk_right)
if keyboard_check(vk_left)

Теперь бита кажется более плавной. А давайте вообще заменим скорость переменной, чтобы можно было потом в самой игре менять скорость движения биты, например, когда подбираем какой-нибудь бонус. Согласны?

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

Создаем событие Create (так же как мы создавали Step ) и в нем напишем всего одну строчку кода:

А в самом событии шага (Step) чуть изменим код на такой:

if keyboard_check(vk_right)
if keyboard_check(vk_left)

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

Не люблю повторяться, об этом я писал в прошлых статьях, но тут все таки сделаю исключение. Напомню, что событие Create выполняется лишь раз, в момент создания объекта. Т.е. весь код, что написан в событии Create выполнится лишь раз, в самом начале, в отличии от Step , где он выполняется циклически, т.е. неприрывно.

Делаем столкновения со стеной

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

Т.е. что нам нужно сделать? Алгоритм такой:

  1. Проверить нажата ли клавиша вправо
  2. Проверить находится ли бита все еще левее самой крайней стены
  3. Если да, то только в этом случае сдвигаем ее на 5 пикселей вправо

Тоже самое потом проделываем и для левой стороны. Чуть дорабатываем наш код:

<

blockquote>if keyboard_check(vk_right)

<

blockquote>if keyboard_check(vk_left)

Ну, давайте разбираться, что мы тут написали.

Сначала как и прежде первой строкой проверяем нажата ли клавиша «стрелка вправо». И если она нажата, то все, что идет далее между скобок <> будет выполняться, если нет, то код в них просто будет игнорироваться.

А в скобочках у нас еще одно условие (if). Им мы проверяем если x-координата биты меньше значения 891, то можем выпонить код следующий далее в скобках <>. А в нем у нас как раз прибавление координаты x на 5 пикселей, т.е. сдвиг вправо. Таким образом, если у нас x биты меньше 891, то она сдвинется вправо, а если больше или равно, то код в скобках не будет выпоняться, т.е. бита не сдвинется и будет стоять, т.е. как бы упрется в стену.

То же самое для левой стороны, только там условие чуть отличается. Если x больше 67, то бита сдвинется влево на 5 пикселей, если меньше или равно 67, то соответственно нет.

Читайте также:
Программа в управлении проектами это

Где я взял эти значения: 67 и 891? Это просто координаты в комнате. Как уже сказал, ось X в GMS идет слева направо. Т.е. самая левая координата комнаты будет равна 0, а самая правая — значению ширины комнаты (которое мы задавали при создании комнаты, т.е. 960 пикселей в нашем случае).

Источник: dzen.ru

Краткое руководство пользователя

Добро пожаловать в Руководство по быстрому старту! Этот раздел руководства предназначен для ознакомления с наиболее важными аспектами GameMaker и покажет вам основы, чтобы вы могли как можно быстрее создавать игры. Руководство охватывает основные функции IDE , а также дает краткое введение в программирование, чтобы вы могли максимально быстро использовать возможности продукта, независимо от того, используете ли вы GML Code или GML Visual .

Чтобы проиллюстрировать рабочий процесс GameMaker и заставить вас сразу приступить к созданию чего-либо, мы подготовили это руководство, которое поможет вам пройти путь от самых основ того, что такое GameMaker и что такое программа, через создание общих активов и до того, как закодировать такие базовые вещи, как движение и счет.

Создание игр с помощью GameMaker — концептуально довольно простое и понятное дело, если следовать следующим общим шагам:

  • Создание активов изображенийспрайты, комплекты плитки, шрифт) и добавление их в браузер активов.
  • Создайте активы объектов для представления вещей, которые вы хотите использовать в своей игре, и назначьте им необходимые активы изображений.
  • Запрограммируйте эти объекты на выполнение определенных действий в ответ на конкретные события.
  • Добавьте экземпляры этих объектов в комнату , где они будут выполнять свои программы.

Курс обучения Game Maker

Конструктор Game Maker призван максимально упростить создание игр, чтобы у каждого пользователя появился шанс воплотить свои идеи в жизнь. По сравнению с классической разработкой игр, данная программа значительно облегчила данный процесс, но из-за его многогранности и сложности, сама превратилась в инструмент, требующий изучения.

Если вы ни разу не сталкивались с визуальными игровыми конструкторами, то врятли сможете разобраться в Game Maker самостоятельно. Эта программа заменила ввод кода, множеством готовых функций, в разнообразии которых, легко теряются начинающие разработчики.

Чтобы помочь вам быстрее овладеть инструментами Game Maker, мы собрали 2 сборника видеоуроков, где по шагам, наглядно, демонстрируется процесс создания игр.

Изучаем основы Game Maker

Базовый курс уроков Game Maker, поможет новичкам освоиться в программе и создать свою первую 2D игру. Автор видео подробно рассказывает, что нужно делать, как и зачем.

Учимся настраивать движение персонажей (влево, вправо, вниз и вверх).


Предназначение переменных в конструкторе Game Maker. Очень полезный урок.

Задаем параметр прочности (здоровья) для врагов.

Данный видеоролик расскажет вам, как добавить в игру экшена в виде перестрелок.

Задаем своему персонажу уровень здоровья и выводим его на экран.

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

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

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

Задаем дистанцию для определенных объектов.

Чтобы объекты не пропадали за пределами окна, стоит заранее настроить область их движения.

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

Даем врагам возможность вести прицельный огонь по заданным целям.

Добавляем в игру окно инвентаря для хранения и использования виртуальных объектов.

Добавляем возможность сохранения данных игры в отдельный документ.

Подробное объяснение понятия “цикл” и примеры его использования в разработке игр.

Скачать весь курс одним архивом

Знакомимся с жанрами

Сборник уроков для любителей. В данных видеороликах демонстрируется процесс разработки игр разных жанров. На наглядном примере показывают, как создаются TDS-стрелялки, платформеры, раннеры, стратегии и редакторы карт.

Источник: 4creates.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru