код прыжка для game maker

Код прыжка для game maker

Несколько простых рисунков.

Нажав на Shift+Ctrl+S Вы откроете окно свойств вновь созданного спрайта. Свойства спрайта будут рассмотрены позже.

код прыжка для game maker

В поле для ввода текста «Name» Вы можете написать имя спрайта (пожалуйста, привыкайте давать осмысленные имена всем ресурсам Вашей игры). Нажмите на кнопку «Edit Sprite», далее, как и показано на следующем рисунке, нажмите на кнопку «Create a new sprite»,

код прыжка для game maker

в появившемся меню укажите размеры спрайта как на рисунке ниже.

код прыжка для game maker

Нажмите на кнопку «Ок», откроется следующая картина

код прыжка для game maker

Щелкните дважды левой кнопкой мыши на «image 0», и Вы окажетесь в редакторе похожем на Paint. Залейте серым цветом всю свободную область рисунка, чтобы получить нечто вроде этого.

код прыжка для game maker

код прыжка для game maker

Присвоение объекту спрайта

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

код прыжка для game maker

После нажатия откроется меню выбора спрайтов. Выберите спрайт с именем «s_floor»,

код прыжка для game maker

поскольку мы редактируем объект «o_floor» т.е. пол, по которому и будем ходить. Другие настройки пока не трогайте. Проделайте тоже самое с объектом «o_player» назначив ему спрайт с именем «s_player». Создайте комнату и поместите в неё созданные объекты ссылка на предыдущую статью) так, как это показано на рисунке (хотя бы примерно).

код прыжка для game maker

Несколько простых действий

Ладно, с рутиной покончено. Сейчас он у нас научится прыгать, ходить (пока без анимации), приседать (чтобы мы могли добраться до правой части экрана не прыгая.), двойному прыжку (чтобы допрыгнуть до верхней платформы).
Вы уже знаете как добавить объекту событие и действие на него (ссылка на предыдущую статью). Создайте для объекта «o_player» событие «Create» и на это событие добавьте действие «Execute Code». В открывшемся редакторе кода напишите:

Далее добавьте объекту «o_player» событие «Step» и также назначьте ему действие выполнения кода «Execute Code». Напишите там следующее:

if keyboard_check(vk_left) //Теперь нам нужна «стрелка влево»
<
if place_free(x-5,y-8) x-=5
>

// прыжок
if keyboard_check_pressed(vk_up)
<
if crouch and place_free(x,y-30)
<
crouch=false
image_yscale=1
y-=20
> else

if jump=false
<
jump=true
vspeed=-10
>
>
>
//приседание
if keyboard_check(vk_down)
<

if jump exit
if crouch=false
<
crouch=true
image_yscale=0.40
//y+=5
>

Источник

Код прыжка для game maker

Несколько простых рисунков.

Нажав на Shift+Ctrl+S Вы откроете окно свойств вновь созданного спрайта. Свойства спрайта будут рассмотрены позже.

код прыжка для game maker

В поле для ввода текста «Name» Вы можете написать имя спрайта (пожалуйста, привыкайте давать осмысленные имена всем ресурсам Вашей игры). Нажмите на кнопку «Edit Sprite», далее, как и показано на следующем рисунке, нажмите на кнопку «Create a new sprite»,

код прыжка для game maker

в появившемся меню укажите размеры спрайта как на рисунке ниже.

код прыжка для game maker

Нажмите на кнопку «Ок», откроется следующая картина

код прыжка для game maker

Щелкните дважды левой кнопкой мыши на «image 0», и Вы окажетесь в редакторе похожем на Paint. Залейте серым цветом всю свободную область рисунка, чтобы получить нечто вроде этого.

код прыжка для game maker

код прыжка для game maker

Присвоение объекту спрайта

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

код прыжка для game maker

После нажатия откроется меню выбора спрайтов. Выберите спрайт с именем «s_floor»,

код прыжка для game maker

поскольку мы редактируем объект «o_floor» т.е. пол, по которому и будем ходить. Другие настройки пока не трогайте. Проделайте тоже самое с объектом «o_player» назначив ему спрайт с именем «s_player». Создайте комнату и поместите в неё созданные объекты ссылка на предыдущую статью) так, как это показано на рисунке (хотя бы примерно).

код прыжка для game maker

Несколько простых действий

Ладно, с рутиной покончено. Сейчас он у нас научится прыгать, ходить (пока без анимации), приседать (чтобы мы могли добраться до правой части экрана не прыгая.), двойному прыжку (чтобы допрыгнуть до верхней платформы).
Вы уже знаете как добавить объекту событие и действие на него (ссылка на предыдущую статью). Создайте для объекта «o_player» событие «Create» и на это событие добавьте действие «Execute Code». В открывшемся редакторе кода напишите:

Далее добавьте объекту «o_player» событие «Step» и также назначьте ему действие выполнения кода «Execute Code». Напишите там следующее:

if keyboard_check(vk_left) //Теперь нам нужна «стрелка влево»
<
if place_free(x-5,y-8) x-=5
>

// прыжок
if keyboard_check_pressed(vk_up)
<
if crouch and place_free(x,y-30)
<
crouch=false
image_yscale=1
y-=20
> else

if jump=false
<
jump=true
vspeed=-10
>
>
>
//приседание
if keyboard_check(vk_down)
<

if jump exit
if crouch=false
<
crouch=true
image_yscale=0.40
//y+=5
>

Источник

Код прыжка для game maker

В прошлом выпуске №1 мы создавали лабиринт, а этом мы будем делать новую игру чем-то похожую на арконоид, но это не арконоид. В общем вот её состав:
I. В начале уровня на экране появляются шарики и стены
II. При столкновении шариков со стенами шарики меняют цвет в соответ-ствии с стенами
III. При столкновении между собой становятся также другого цвета
IV. Игрок управляет платформой, которая не должна давать мячам улетать с экрана
V. Система очков
VI. Система таймера
Это то, из чего будет состоять игра. Мы в прошлом уроке изучали, как загружать спрайты, добавлять объекты и прочее что их надо называть в соответствии, как менять разрешения экрана и ставить в полноэкранный режим, как задать управление с помощью кнопок как сделать объекты непроходимыми. Поэтому весь этот список повторять не будем, и эти элементы будут выглядеть так: «Соз-даём эффект непроходимости …». Снова объяснения не будет, поэтому если вы не читали первый номер, либо не помните, скачайте его и прочитайте сначала и после переходить к выпуску номер 2.
Манипуляция спрайтами …
Снова включаем Game Maker, видим рисунок

код прыжка для game maker

Объяснять где что не буду. Добавляем комнату, устанавливаем разрешение этой комнаты на 800*600. Делаем полноэкранный режим. Загружаем спрайты разноцветных блоков (c:\program files\game_maker8\sprites\ Bouncing Balls\stones). Хватит и четырёх цветных блоков. Загружаем также спрайт маленького железно шарика (на одну папку назад). Теперь все спрайты блоков дублируем, чтоб блоков каждого цвета было по два.
Теперь берём «клоны» блоков и нажимаем кнопку «Редактировать». Жмём Ctrl +Alt+P. Пишем в строке «Border» 17. Жмём ОК. Клацаем Ctrl+Alt+R. Делаем вращение на 90 градусов. Жмём Ок. Снова набираем комбинацию Ctrl +Alt+P, только теперь берём «Border» = 0. И у вас должно получится так (рисунок ниже). Повторяя прошлые манипуляции с каждым клоном блоков. Этим мы перевернём блоки. Потому что нам нужны будут различные.

код прыжка для game maker

код прыжка для game maker

Закончив с спрайтами переходим к самим объектам.
В первую очередь сделаем платформу, которой игрок будет управлять. Создаём объект, применяем к нему спрайт платформы, и делаем для него управление с клавиатуры лишь для кнопок «Влево» и «Вправо» потому что мы будем им управлять только по оси Х.
Создаем блоки по количеству спрайтов блоков. В моём случае это 8. В объекте Player (так у меня называется платформа) ставим событие столкновения с бло-ками и делаем, чтоб он не мог пройти сквозь эти блоки (Как сделать объекты не проходимыми мы рассматривали в первом уроки).
Делам объект «Boll». В «Player» ставим также столкновение, но теперь для «Boll». В нём добавляем случай «Bounce» чтоб при столкновении с платформой мячики улетали. В самом шаре делаем так …

Изменения цвета при столкновении

код прыжка для game maker

Теперь нам надо чтоб когда игрок все-таки не смог отбить мяч он улетает чтоб шар возвращался назад и для красоты поставим эффект зелёных (по желанию можно выбрать любой цвет под свой цвет и вкус) колец в стартовом положении. Для этого в «Boll» также ставим событие «Вне границе комнаты». Там выбераем «Jump to start», и в закладке «Draw», «Creat Effect» там всё ставим как на рисунке.

код прыжка для game maker

Звуки
Сначала давайте загрузим звуки. Это также как и спрайты и фоны. Загрузим стандартные звуки Game Maker из директории «C:\Program Files\Game_Maker8\ Sounds». Грузим вот эти звуки:
I. Cancel
II. click_tiny
III. Step
IV. Applause
Чтоб подключить звук в событии переходим на вкладку «Main1» и выберам «Play Sound».
В объекте «Boll» во всех событиях столкновениях поставьте звук «step».
В событии «Вне границе комнаты» ставим звук «Cancel».
В объекте «Player» в событии столкновении с «Boll» включите звук «step».

Внимание! При подключении звука смотрите, чтоб Loop ровнялось false – Don’t Loop. Иначе звук будет проигрываться зациклено!

А теперь перейдём к системе очков. Я сделал так, чтоб когда игрок отбивал платформой мяч, он получал балл. Когда он упускал мяч (он оказывался за пре-делами комнаты) у него снимался также один балл.
Нам понадобится переменная ups. Она должна быть глобальной. Выбираем комнату и переходим к закладки «Установки» и «создать код» (Рисунок ниже). Там вы также увидите переменную (на картинке) под названием timer и что он установлен с значением = 100. Это объясню позже. Она нам понадобится для создания таймера. Пока напишите и её.

код прыжка для game maker

Переходим к объекту «Boll» и в событии «Вне границе комнаты» нажимаем на вкладку «Control» и жмём на «Execute code». Там пишем (рисунок ниже)

код прыжка для game maker

Теперь переходим к объекту «Player», к событию столкновения с мячом. Там также жмём «Execute Code» и пишем всё точно такое же только «…ups-=1» за-меняем минус на плюс, чтоб очки при соприкосновении платформы и мяча при-бавлялись, а не отбавлялись.
Сейчас у нас ведётся подсчёт очков, но нам надо чтоб он выводился на экран и также нужен таймер.

Таймер и вывод переменных на экран
Для создания таймера нам нужна будет глобальная переменная под названием timer. Если вы её всё ещё не написали, то предлагаю вам вернуться в комнату щелкнуть по закладки «установки» и нажать на кнопку «Создать код» и написать всё также как на рисунке.

код прыжка для game maker

Теперь создаём ещё один объект и называем его «write». Не какого спрайта к нему не принимаем. Также не нужно ставить галочку «Твердый» то, как он нужен будет нам только действиями, а не видимостью.
Делаем событие «Room Start» и в нём делаем случай «Alarm0» как на рисунке.

код прыжка для game maker

Делаем событие «Alarm0» и в нём добавляем «Alarm0» где «number of steps:» =30. Это сделает, так что все функции, которые будут в «Alarm0» каждую секунду будут выполняться. Это нам подходит для того что б каждую секунду «Alarm0» нам снимал с переменной «timer» по единице. Для этого в «Alarm0» добавляем функцию «Execute code» и там пишем (рисунок ниже)

код прыжка для game maker

Теперь мы должны сделать так чтоб когда время игрока заканчивалось, ему показывался его результат в таблице рекордов, проигрывался звук аплодисмен-тов и по введению имени и закрытию окна рекордов комната переигрывалась.
Для этого в «Alarm0» жмём закладку «Control» и там нажимаем «Test Expres-sion» и в появившемся окне пишем следующие (рисунок ещё ниже)))

код прыжка для game maker

После добавляем открытие блока, выполнения в том случае если аргумент будет верен, под названием «Start Block». Теперь подключаем звук аплодисментов. Переходим в закладку «Score» жмём «Set Score» а там делаем как на рисунке.

код прыжка для game maker

Таким образом, мы присваиваем очкам переменную «ups» куда сохранялись все очки. Конечно, можно было использовать стандартную переменную «score»? но я хотел показать, как делать глобальные переменные…
Теперь мы должны чтоб сделать, чтоб выводилась таблица рекордов. Поэтому нажимаем на кнопку «Show Highscore». В том окне настраивайте всё под своё усмотрение.
После в «Main1» выбираем «Restart game» и завершаем блок действий перейжя снова на закладку «Control» и нажимаем на кнопку «End Block». В общем у вас должно получиться чтото подобное (Рисунок ниже)

код прыжка для game maker

А сейчас делаем, чтоб на экране выводилось количество очков и времени, ко-торое осталось (количество времени которое даётся для игры вы можете отре-дактировать, выбрав в «создать код» и заменить строку «timer=100» на любое другое число). Для этого всё в том же объекте «write» создаём событие «Draw».
В нём переходим на закладку «Draw» и клацаем по кнопке «Set Color». Там выберете любой цвет для отображения очков и контура поля, в котором они будут находиться.
После нажимаем «Добавить шрифт» и делаем приблизительно, так как это изображено на рисунке ниже. Естественно вы можете изменять параметры, но шрифт не будет отображать буквы, если вы выберите отображения только чисел. Поэтому выберете то, что отмечено на рисунке.

код прыжка для game maker

Жмём Ок. Снова переходим к объекту «Write» и там к событию «Draw» и до-бавляем оператор «Set Font», там выберете тот шрифт, который вам нужен.
Теперь добавляем ячейку, в которой будет находиться строка «Очки: ». Клацаем по «Draw Rectangle» и делаем так (рисунок ниже)

код прыжка для game maker

И второй – для строки времени делаем так (рисунок совсем низко)))…

код прыжка для game maker

Дальше делаем так как сделано на рисунке.

код прыжка для game maker

Это будет вывобить переменную «Timer» в ячейку справа. И делаем так …

код прыжка для game maker

Курсор
Не такая уж большая тема чтоб её делать отдельно но всеже вот…
Нам надо чтоб при запуске курсор мыши скравался так как он нам мешает. Для этого перейдя в «Boll» в события «Room start» переходим на закладку «Extra», там клацаем по значку с курсорам и остовляем всё как есть.
Всё.

Постройка уровня под наши правила
Теперь переходим к постройки уровня. Под наши запрограмированые объекты он должен выглядить примерно так… (рисунок ну совсем низко)

Источник

Как сделать в game maker прыжок

Econ Dude

Страницы

понедельник, 13 марта 2017 г.

Движение персонажа и врагов в GameMaker

Приветствую вас в блоге Econ Dude.

Не так давно я принял решение сделать серию статей и видео на своём канале в ютуб про создание игр в GameMaker.

код прыжка для game maker

Если вы работайте в какой-то другой среде программирования и используйте не гейм мейкер (GameMaker), а например unity, то тут вы тоже сможете найти интересную информацию для себя так-как вне зависимости от среды и движка, принципы везде довольно похожи. Движение это самое просто и самое первое, что люди изучают.

В таких программах как game maker (studio, 2 или любом другом) всё это сделать довольно просто и в рамках простейшего объектно ориентированного программирования вы можете сделать движение за пару секунд. Но для начала давайте поймём пару вещей: кто будет двигаться, зачем как и куда?

Например, обычно нам нужно что-бы враги двигались на героя. да? А герой, часто, двигается при нажатии на стрелки на клавиатуре (или кнопки q, a, s, d), а может быть вам нужно что-бы какой-то кролик рядом просто бегал от дерева к дереву? Начинать думать с таких простых вещей важно так-как потом уже в коде это вам сильно поможет понять что же вы такое пишите и почему писать нужно именно так, а не иначе.

Функции движения в GameMaker

Как сделать движение в игре? Если вы только начинаете освоение game maker, то вы можете для ваших первых игр всё сделать вообще без какого либо кода. Гейм Мейкер был придуман как раз для новичков и он позволяет делать простые игры и осваивать всё даже без программирования.

Дальше, конечно, код вам понадобиться, но начать можно и вот с такого:

код прыжка для game maker

Простейший пример, как сделать движение героя при нажатии на стрелку вверх?

код прыжка для game maker

В коде это всё можно сделать вот так:

код прыжка для game maker

Как видите и в коде всё очень просто, просто мы меняем координату объекта (героя) на 1 по оси Y. Пишем: y-=1

Какие бывают даже тут ошибки?

Почему минус равно (y-=1), а равно минус (y=-1)?

Есть еще один момент, который смущает новичков.

Иногда координаты в гейм мейкер могут быть немного непонятными. Возьмём две точки что-бы было понятнее.

код прыжка для game maker

Дело в том, что координаты комнат в гейм мейкер строятся от точки 0, 0 (X, Y), которая находится в левом верхнем углу. Соответственно движение вверх будет движение ближе к нулевой точке.

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

код прыжка для game maker

Точка сверху, х = 400 (пол экрана при разрешении 800 на 600), у = 25.

Точна снизу, x = 400 (на той-же линии по вертикали), у = 125 (По горизонтали)

Теперь представьте что наш герой, или например космический корабль, находится в нижней точке. Какую координату нам нужно изменить чтобы он был выше, Х или У? 400 или 125?

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

Например, если вы напишем У-=100, то объект как раз и переместиться в первую верхнюю точку, хотя это на самом деле даже не совсем движение, а это будет как-бы прыжок или даже телепортация.

Однако если над этим помедитировать, то любое движение это по сути и есть вот такие прыжки, просто очень маленькие и быстро.

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

Скорость 5 в нашем случае будет означать что за одну единицу времени объект пройдёт 5 клеток (пикселей).

Что такое скорость и время в играх, да и вообще?

А что такое в GameMaker, да и в играх, вообще время? Мы тут с вами совсем уже в философию даже уходим, но это на самом деле интересно.

Общемировой стандарт частоты киносъёмки и проекции составляет 24 кадра в секунду. Это значит что просто картинка меняется 24 раза за секунду и мы видим это как поток, однако на самом деле картинки меняется очень быстро и наш мозг просто не успевает их вычленять. Кстати, когда вы снимаете на камеру старый телевизор, то вы видите черные полосы. Знаете про такое? Вот. Чёрные полосы получаются как раз из-за того, что камера снимает быстрее чем кадры меняются в телевизоре.

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

И если для вас я пишу слишком просто то уж извините, это основы. В первых статьях я буду всё разжёвывать вот так, иначе люди просто не поймут материал.
У меня на канале есть видео где я просто пишу код и делаю игру, без всяких объяснений. Таких видео много, однако после них остаётся куча вопросов, а я хочу создать именно обучающий материал, который эти вопросы исключит.

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

А вот в играх так-же самая вещь (FPS), это и есть время!

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

Представим что наш объект двигается с игровой скоростью 1 (один пиксель за тик), двигается он направо.

Стартует он с координаты 0, 300 (слева, середина экрана 800 на 600).

код прыжка для game maker

Сколько пикселей такой объект пройдёт за 3 секунды и на каких координатах он будет?

Вот видите, хрен мы это поймём если мы не знает FPS!

В играх частота смены кадров сейчас порядка 100 и больше, но иногда можно использовать и 30, и 50 и какую угодно. Чем она больше, чем труднее будет для устройства «переваривать-тянуть» игру.

И будет он уже не на координате 0, 300, а на координате 150, 300.

Хотя можно было подумать вначале что скорость 1 это медленно, но это в рамках игры и игровой вселенной (если карта-комната размером 800 на 600) будет очень быстро, если FPS у нас 50.

Это всё, кстати, потом нужно будет учитывать при дизайне уровней, балансе и прочих вещах, но об этом позже.

Хорошо, с этим мы вроде разобрались.

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

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

Всё это мы можем назвать свободным управляемым движением, однако, что если вам мало ходьбы в 4 стороны, а хочется более гибкого управления? Ну даже в такой системе на самом деле вы сможете ходить в 8 сторон!

Просто если вы зажмёте кнопки вверх и вправо, то вверх и вправо (Y-, X+) вам персонаж и пойдёт, но иногда нужно больше возможностей.

Движение мышкой и движение к мышке

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

Синий герой тут двигается именно туда, куда вы тыкайте мышкой. Делалась игра на телефон и до сих пор валяется в google play.

Я выбрал второй вариант.

Это пишется легко, одной функцией:

код прыжка для game maker

Синим я выделали скорость ( h_speed ), в данном случае она является локальной переменной, но она может быть и глобальной, а можно там просто написать например цифру 5 и не заморачиваться, на данный момент.

В данном случае ложь (false) в этой функции означает проверку стен ну и она отключена. Пока давайте этого не касаться.

Абсолютно так-же делается куча других вещей, например пуля летит в прицел (в 2D играх) примерно так-же, если прицел там-же где и мышка или просто картинка мышки (спрайт) это и есть прицел.

Так сделано например в моей игре TDS, для которой я кстати даже исходник выкладывал.

Основные функции движения в GameMaker

Теперь к чуть более сложному, если вы еще не устали.

В справке game maker, которой я всем рекомендую пользоваться как можно чаще, есть все функции движения:

Так-же бывает что я использую:

Иногда нужны и такие вещи.

А вот «speed» нужно довольно часто, так-как с помощью этой штуки можно не просто указывать скорость, её так-же можно еще и проверять.

Если скорость больше 0 (объект не стоит на месте, двигается) тогда. (Делать что-то). Так-же почти во всех функциях движения вы можете просто писать «speed», а при создании этих объектов задавать эту самую скорость в create. Это будет просто локальная переменная и так её проще менять для некоторых ситуаций.

Так-же есть более сложные функции (Motion Planning) и планированием движения и избегания объектов (например стен), но о них мы поговорим в следующей статье. GameMaker позволяет вам планировать движение и даже прописывать не самый плохой искусственный интеллект. Враги могут уворачиваться от пуль, прятаться за укрытиями, отступать и многое другое, но про всё это мы будет говорить далее.

Какие-то азы поведения врагов (слух, зрение) вы можете прочитать в моей статье:

Функция движения к точке в GameMaker

Основная функция движения в gamemaker, которой лично я пользуюсь довольно часто, это:

Она простая и понятная, в ней есть 3 составляющих.

Как двигаться не к точке, а к конкретному объекту?

Например, как зомби будет бежать на героя? Вспомните как делается движение к мышке, тут всё почти так-же.

Тогда у нас получается:

move_towards_point( obj_hero.x, obj_hero.y, 5 );

Как следствие, преследовать героя и бегать за ним зомби не будет.

Писать эту функцию в create бывает полезно когда движения объекта точно не будет меняться дальше, например для пуль. Пули могут мазать и они летят туда, куда вы целились. Конечно, фантазёры могут придумывать самонаводящиеся пули или например какие-то ракеты с тепловым наведенем, но что-бы объект следовал за целью всегда, эту функцию нужно писать е в create, а в step.

По хорошему нужно бы мне написать про все эти действия в game maker (draw, create, step), но они довольно просты и скорее всего я не буду покрывать этот момент.

код прыжка для game maker

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

На этом на сегодня всё.

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

ля этого дайте ссылку на эту статью друзьям, поставьте тут лайк (под статьёй) ну и ставьте лайки и делайте репосты когда я такие статьи публикую в своём паблике. Я вам буду очень признателен (если вы туда еще не вступили, вступайте).

Я так и не успел покрыть смежные темы:

Может быть позже про них тоже напишу.

Ну и сделал по этому теме видео на моём канале (14 мин).

Как сделать в game maker прыжок

код прыжка для game maker

Создание платформера в GM
Скачать GameMaker
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.

код прыжка для game maker

код прыжка для game maker

Теперь персонаж ходит влево и вправо. Пожалуй, самое важное в этих играх это гравитация, и естественно нужны платформы. Создаём ещё один объект, назовём его obj_platform – это будут наши будущие платформы описанные выше. Обязательно ставим галочку Solid (твёрдый) в obj_platform.

Переходим опять к obj_player. В Step ставим условия, показываемые на скриншоте и в примере:

код прыжка для game maker

код прыжка для game maker

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

Теперь важно сделать прыжок персонажа. Давайте замахнёмся сразу на двойной прыжок.

Чтобы сделать прыжок, нам нужно внедрить переменную. Давайте назовём её jump. Она понадобится нам для установления максимального количество толчков. В условии create создаём переменную jump=0. Переменные создаются выделенной красным цветом кнопкой. Когда вы её перенесёте в «Actions», появится меню. Указывайте там всё, как на скриншоте.

код прыжка для game maker

Теперь при создании персонажа переменная будет равняться нулю.

В Событии press (нажать кнопку вверх) создаём такое:

код прыжка для game maker

код прыжка для game maker

В принципе, основной движок для нашего платформера готов! Но давайте внедрим в него дополнительные функции.

Давайте сделаем лестницы. Лестницы мы сделаем в событиях Step, Up, Down. Создаём новый объект, и назовём его obj_ladder.

В Step создаём следующие действия:

код прыжка для game maker

код прыжка для game maker

Down создаём тоже самое, что и в Up, но координату y=-4, надо заменить на y=+4

Создаём объект врага. Назовём obj_enemy. Врагам в событии Create создаём действие, указанное на рисунке, и ставим в нём всё как указанно на скриншоте.

код прыжка для game maker

Ещё нам понадобится объект obj_rotate и сделать его невидимым (убрать галочку Visible).

Во враге создаём событие столкновения с obj_rotate и вставляем следующее действие:

код прыжка для game maker

При касании к этому объекту, враг будет менять своё направление, и идти в обратную сторону. То есть так мы устанавливаем области патрулирования врагов.

Чтобы враги могли «убивать» персонажа, нужно сделать систему жизней и здоровья. В Game Maker такая система уже встроена.

В событии Step создаём следующее:

код прыжка для game maker

код прыжка для game maker

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

Тоже самое, как и врага, делаем штыки, только они не двигаются. При касании к ним ставим:

код прыжка для game maker

Когда здоровья будет меньше одного, отнимается одна жизнь.

Вот уже можно сделать неплохой платформер. Идём в комнату и делаем уровень. Расставляем блоки, персонажа, врагов и прочее…

Давайте сделаем, чтобы наш платформер был не просто на одной картинке, а был большой уровень, и камера следила за персонажем. Для этого в комнате во вкладке views (виды) делаем следующее:

код прыжка для game maker

Hbor и Vbor нужно менять. Это координаты x и y при достижении которых, камера будет двигаться. Например, для вида размером 640х480 можно поставить Hbor:320; Vbor:240. Тогда камера будет следить чётко по центру за персонажем.

Итак, с помощью моей статьи и примера, можно сделать собственную игру жанра платформер. Вам остаётся только сделать уровни! Научившись азам «Game Maker» вы сможете сами понимать, как сделать тот или иной жанр игры. Эта статья рассчитана для новичков. Думаю всё написано доступно.

код прыжка для game maker

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

Теперь мы должны определить движение персонажа. Проблема состоит в том, что наш герой должен идти по полу, верхней его части. При этом он не должен пересекать пол (не должен проваливаться). Если персонаж прыгает или падает с платформы, он должен правильно приземлиться на следующую платформу. Существует множество различных способов, посредством которых персонаж может ходить, прыгать и падать. Разные игры используют различные модели. Обычно для управления движением мы используем только три клавиши. Клавиша со стрелкой «влево» перемещает наш персонаж налево, клавиша со стрелкой «вправо» должна перемещать его направо и клавиша «вверх» или клавиша «пробел» заставляет его подпрыгивать.

код прыжка для game maker

Далее мы нуждаемся в вертикальном движении. Его добиться более сложно. Чтобы позволить персонажу падать, мы можем использовать гравитацию (силу тяжести). Но необходимо также добится чтобы движение прекратилось, когда герой коснется пола. Помимо этого, нужно указать максимальную скорость падения, иначе персонаж будет двигаться слишком быстро. (Это будет выглядеть не очень красиво, а еще может вызывать и некотрые проблемы в выполнении). В результате мы помещаем следующую часть кода в шаговом событии (step event) персонажа. Он устанавливает силу тяжести, основанную на том, находится ли что-то под персонажем (проверяем, является ли позиция 1 пикселя ниже персонажа свободной). Также он ограничивает вертикальную скорость.
12) vspeed = 12;
>

код прыжка для game maker

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

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

Имеются две вещи, которые мы хотим изменить: это внешний вид главного героя и внешний вид фоновых изображений. Рассматриваемый вариант можно найти в файле platform_graphics.gmd.
Изображение для персонажа

код прыжка для game maker

Чтобы добавить тайлы в твою комнату, сперва понадобится само фоновое изображение с нужными тайлами. Желательно чтобы тайлы содержащиеся в фоновом изображении имели фиксированный размер и были отделены друг от друга небольшой линией (в 1 пиксел) для того чтобы их легче было выбирать из общей кучи. В дистрибутив Game Maker включено достаточное, для первых шагов, количество разнообразных тайлов, но при желании ты всегда можешь найти еще кучу аналогичных или даже лучше, в сети Интернет. Для нашей простенькой платформенной игры мы сделали свой собственный, небольшой набор тайлов. Мы добавили его как прозрачный фоновый ресурс, под названием background_tiles.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *