Вход Регистрация Забыли пароль ?

skype: megainformatic, телеграм: megainformatic, онлайн-чат (megainformatic live chat), форма обратной связи

Онлайн Школа Компьютерных Наук Андрея Синицина

Онлайн Школа Компьютерных Наук Андрея Синицина - автор

Добро пожаловать в нашу школу ! Давайте вместе откроем путь к новым перспективам !!!

Dream World - разработка игры на Game Maker Studio 2.3 - урок 2




Данный урок посвящен созданию игры на GML в среде разработки Game Maker Studio 2.3

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


СОДЕРЖАНИЕ


Урок 1 - Первый шаг в создании игры
Урок 2 - заставляем нашего персонажа реагировать на действия нажатий клавиш



урок 2 - заставляем нашего персонажа реагировать на действия нажатий клавиш



Все, что мы делали до сих пор - не включало в себя написание ни единой строчки кода.
Мы, таким образом, выполняли ВИЗУАЛЬНОЕ ПРОГРАММИРОВАНИЕ, выполняя действия в самой
среде разработки.

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

Но никак не иначе.

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

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

Визуальное программирование имеет большие ограничения. Но сочетание того и другого
дает неоспоримые преимущества.

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

Мы можем больше времени уделить созданию непосредственно самой игры.

Пока что у нас конечно игра очень простая, но давайте научимся управлять перемещениями
игрового персонажа по сцене.

В gms сцены называются комнатами, так что будем перемещать obj_player по комнате.

Предположим пусть наш персонаж будет перемещаться, с использованием клавиш WASD или
клавиш стрелок на основной и дополнительной клавиатуре.

Как это все реализовать ?

Переключимся на окно obj_player используя выбор объекта в списке окна Assets или
используя комбинацию клавиш [Ctrl] + [Tab], как мы это уже делали в нашем предыдущем
уроке.


Game Maker Studio 2.3 - obj_player

если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
У каждого объекта могут быть обработчики событий Events. Для обработки действий по нажатию клавиш, выполняемых каждый кадр можно создать событие Step. Для этого нажмём в окне Events, которое привязано в окну obj_player кнопку Add Event и создадим обработчик события Step. Game Maker Studio 2.3 - в окне Events, которое привязано в окну obj_player кнопку Add Event и создадим обработчик события Step
если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
В открывшемся окне obj_player: Step мы можем писать код на языке GML. Кстати чтобы окно было в пределах видимости, а не за его пределами, нажмите и удерживайте клавишу [Пробел] или Среднюю кнопку мыши - тогда вы сможете переместить окно так, чтобы с ним было удобно работать. Только чтобы нажатие [Пробел] работало, надо кликнуть где-то за областью окна, иначе нажатие [Пробел] будет приводить к вводу пробелов - если фокус ввода уже находится на окне obj_player: Step. Game Maker Studio 2.3 - нажав [Пробел] или Среднюю кнопку мыши перемещаем окно obj_player: Step
если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
Итак, давайте удалим комментарии которые там уже написаны и запишем следующее: //move player x = x + 5; Game Maker Studio 2.3 - перемещаем персонажа
если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
Сохраним изменения в проект и запустим игру по [F5] или кнопкой Run. Персонаж будет перемещаться вправо, пока не исчезнет за пределами видимости окна игры. Как вы уже поняли, первой строкой кода - //move player мы записали комментарий к коду, чтобы было понятно, какие действия выполняются. Советую завести привычку писать комментарии к своему коду, чтобы по прошествии времени, они помогали вам вспомнить, что делает тот или иной код. Ну а строкой x = x + 5; Мы перемещаем персонажа вправо просто прибавляя к его координате x значение 5. x - это встроенная переменная объекта obj_player. Поскольку обращаемся мы к ней внутри обработчика события Step, самого объекта obj_player, то никаких дополнительных указаний в коде не требуется. Что ж, уже интересно, но теперь давайте научимся перемещать персонажа по нажатию клавиш. Модифицируем наш код, чтобы он стал выглядеть так - // move player if ( keyboard_check(vk_right) ) { x = x + 5; } Game Maker Studio 2.3 - код на gml для перемения персонажа по нажатию стрелки Вправо
если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
Сохраним изменения в проект и попробуем запустить игру. Если вы будете нажимать клавишу - стрелка вправо, то персонаж будет перемещаться вправо. Вот собственно и все, что требуется. А функция keyboard_check проверяет нажата ли клавиша vk_right т. е. стрелка вправо и если нажата - выполняется код внутри фигурных скобок { } Он выполняет то же самое действие - смещает obj_sprite на 5 пикселей вправо. Только теперь это действие происходит не само по себе, а лишь по нажатию клавиши - стрелка вправо. Напишем обработчики для нажатий всех клавиш - WASD и стрелок на основной и дополнительной клавиатуре. Весь код будет выглядеть так - // move player if ( keyboard_check(vk_right) || keyboard_check(vk_numpad6) || keyboard_check(ord("D")) ) { x += 5; } if ( keyboard_check(vk_left) || keyboard_check(vk_numpad4) || keyboard_check(ord("A")) ) { x -= 5; } if ( keyboard_check(vk_up) || keyboard_check(vk_numpad8) || keyboard_check(ord("W")) ) { y -= 5; } if ( keyboard_check(vk_down) || keyboard_check(vk_numpad2) || keyboard_check(ord("S")) ) { y += 5; } Game Maker Studio 2.3 - код на gml для перемения персонажа по нажатию wasd или стрелок на основной или дополнительной клавиатуре
если кликать картинку она будет последовательно меняться в размерах от 640 до 1366 пиксель.
Действия аналогичны первому обработчику, а из нового здесь то, что используется оператор || означающий логическое или т. е. если нажата клавиша if ( keyboard_check(vk_right) || keyboard_check(vk_numpad6) || keyboard_check(ord("D")) ) стрелка вправо, стрелка вправо на дополнительной клавиатуре или буква D. Для других клавиш по-аналогии. Ну а код, который внутри них выполняется - изменение координат x и y. Меняя x мы перемещаем obj_player по вертикали, а y - по горизонтали. И вы можете заметить, что началом координат - точка 0, 0 является левый верхний угол окна приложения. Сохраните изменения, запустите игру и проверьте, что персонаж в вашей игре действительно перемещается при нажатии клавиш WASD или стрелок. Для того, чтобы закрыть окно запущенной игры Вам понадобится нажимать кнопку закрыть (X) справа вверху окна запущенной игры. Но давайте добавим еще один обработчик - для нажатия клавиши [Esc] и чтобы при её нажатии игра закрывалась. Для этого в конец кода обработчика события Step добавим такой код: if ( keyboard_check_pressed(vk_escape) ) { game_end(); } Выполните это, сохраните изменения, запустите игру и убедитесь, что действительно теперь при нажатии клавиши [Esc] окно игры автоматически закрывается. Во многих играх клавиша [Esc] как раз служит для выхода в меню или выхода из игры. Так что мы тем самым реализовали привычное для обычной игры поведение. Game Maker Studio 2.3 - через несколько секунд перед нами появится обычное окно приложения в котором будет и наш персонаж
если кликать картинку она будет последовательно меняться в размерах от 640 до 1280 пиксель.
Подведем небольшой итог, по пройденным нами двум урокам: 1) мы изучили как создавать в gms новый проект, осуществлять навигацию между его рабочими окнами; 2) узнали, что основой любой игры на gms являются Sprites (спрайты) и Objects (объекты). Без них игру в gms создать не получится. 3) У каждого объекта в игре на gms есть обработчики событий. Один из них мы уже рассмотрели - это обработчик события Step, который вызывается каждый кадр отрисовки приложения. Очевидно, есть и другие обработчики, и их рассмотрение будет происходить в наших следующих уроках. 4) Ну и в обработчике Step для объекта obj_player мы научились управлять персонажем от клавиатуры, написав несколько строчек кода на GML. Полученная игра еще не является полноценной. Тут нет еще многих аспектов, которые присущи настоящим играм. Но главное, что уже положена основа и Вы уже теперь представляете как строится процесс разработки игры на gms. Далее мы рассмотрим объекты для создания в игре врагов, но прежде, мы еще научимся вращению персонажа и выполнению в игре действий мышкой. далее - урок 3 - Вращение, управление игрой посредством мыши, а также Враги !
оцените статью:
0
Понравилось!
0
Не понравилось!
 

Оставленные комментарии


megainformatic 2006 - 2022 карта сайта




Посетили страницу: 217