Перейти к содержимому
Джанкер

Game Maker - советы и примеры

Рекомендуемые сообщения

Я решил, что пора бы открыть отдельную тему для советов и примеров, поскольку читать сто с лишним страниц достаточно сложно. Чуть ниже будут различного рода советы общего плана и примеры нескольких востребованных функций, таких как Спин Дэш или Хомминг Аттак. Все вопросы, что не были описаны в этих графах будут объяснены, но в рамках разумного. Код за вас писать никто не будет, и скорее всего скажут просто общий принцип. Однако, на вопросы, которые разъяснены в первом посте темы, никто отвечать не собирается - не хотите читать - ваши проблемы.

 

Итак, начнем.

 

Общие советы:

  • Учите английский
    Он вам очень пригодится (и не только в изучении ГМ). Дело в том, что большинство путных мануалов написаны именно на английском, на русском их очень мало. Плюс ко всему, ставить русификаторы я не советую, поскольку перевод в них обычно ниже среднего и из того, что объясняю, например, я, вы можете чего-то не понят, поскольку у вас кнопки называться будут не так, как у меня.
  • Учите сразу GML
    Кнопки в ГМ - не самое лучшее решение, поскольку предоставляют обрезанный функционал. Скрипт куда более гибок и предоставляет больше возможностей. К тому же, если вы захотите пойти учиться на программиста, это будет полезно.
  • Не начинайте это дело, если не уверены, что хотите этим заниматься
    Сколько раз я разговаривал с людьми, просящими обучить их работать на ГМ. В итоге они либо метались между GM и MMF 2, а затем переставали этим заниматься, либо переставали почти сразу же. Дело в том, что создание игр - дело кропотливое и без терпения здесь не обойтись. И, разумеется, нужно желание именно учиться - искать мануалы, читать их, переписывать примеры на свой лад, экспериментировать, уметь гуглить.
  • Поменьше спрашивать советов
    Все, что вам нужно, можно найти в интернете. Достаточно лишь поискать. Я сам учился на примерах и официальном мануале, разбирал движки других людей, перенимал приемы работы,
    декомпилил исходники, чтобы разобраться в их устройстве (да, грешил таким, и сейчас грешу. Но, естественно, декомпил никуда не выкладываю)
    . Иными словами, самое лучшее обучение - самостоятельное, когда учишься с желанием.
  • Мануал открывается в самом ГМ по кнопке со знаком вопроса
    И, да, он на английском, если у вас нормальная не русифицированная версия.
  • Официальный сайт с примерами:
    http://sandbox.yoyogames.com/gamemaker/
  • Фанатский сайт с интересными примерами
    Примеры для старых версий, но все равно актуальны:
    http://gmaker.h1.ru/
  • Слово "Проект" пишется через "Е"
    Просто запомните это. А то бесит, когда "типа умные" люди пишут "проэкт". Пользуйтесь в конце концов учебником русского языка на уроках.

 

Примеры функций и ньюансы:

Здесь по большей части будут собраны цитаты из предыдущей темы, которую создал я сам в начале своего гейммейкерского пути:

http://forum.sonic-world.ru/index.php?showtopic=11300

В принципе, все нужное можно найти и в ней. Если вам искать не лень.

 

  • Вопрос(В):
    Я создаю игру, но фон мне мешает. Как убрать фон у предметов(в часности у пола)?
    Прим: Актуально только для версий ГМ до 8.
    Ответ(О):
    В настройках спрайта поставить Transparent. Тот цвет, в который будет окрашен пиксель в нижнем левом углу у первого кадра спрайта, считается цветом, обозначающим прозрачные части изображения, т.е. все части изображения, которые окрашены в этот цвет, будут прозрачными. Т.е. закрашивай прозрачные области этим цветом. Естественно, это не должен быть цвет, который используется в данном спрайте для рисования самой картинки. То же самое для бэкграундов и тайлов.
     
  • В:
    Как сделать так, чтобы за игроком следовал бэкграунд?
    О:
    Создаёшь объект, в событии draw ставишь "рисование бэка", в ней приписываешь по координатам "view_xview+0" и "view_yview+0" (вместо ноля приписываешь любое число - это насколько бэкграунд будет отходить от вида комнаты соответственно), далее указываешь нужный бэкграунд, ставишь объект в комнату и вауля! Бэкграунд следует за игроком, а вернее за видом игрока в комнате.
    В свойствах объекта разыщи строчку "Depth" (в русской версии "Глубина") и поставь в неё значение, скажем 5. Если число отрицательное - объект (а вследствии и бэкграунд, который этот объект рисует) будет на переднем плане. Поэтому ставь положительное число.
     
  • В:
    Как сделать Хомминг Аттак
    О:
    Здесь все сложнее. В двух словах, это делается простой проверкой на расстояние и передвижением к противнику. В событии нажатия кнопки в объекте игрока пишем:
    //Проверяем, существует ли объект противника.
    if instance_exists(obj_Enemy) {
    near=instance_nearest(x,y,obj_Enemy):
    if distance_to_object(obj_Enemy)<300 {
    move_towards_point(obj_Enemy.x,obj_Enemy.y,12);
    }
    }


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

  • В:
    Как сделать спин дэш?
    О:
    Создаем переменные spin_force и spin_active.
    В событие отпускания кнопки "вниз" в объекте игрока добавляем:
    if spin_active==1 {
    //здесь xsp - переменная для скорости игрока.
    xsp=spin_force;
    spin_active=0;
    }


     
    В событие нажатия кнопки спин дэша вводим:

    {
    if keyboard_check(vk_down) {
    //Усиливаем спин дэш
    spin_force+=1;
    spin_active=1;
    }
    }


 

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

Вы можете задать вопросы по всем вышеописанным примерам (и я призываю вас, задавайте, если что-то не понятно), но не в стиле "БЛОООО, ПАМАГИТИ, У МИНЯ НИЧЕГО НИ ПАЛУЧАЕТСААА!!!". Это я к тому, что задавайте вопросы по общей механике, ваше нытье о том, что ничего не получается никто слушать не будет. Не получается, значит руки из известного места. Не понимаешь, как это работает, но оно работает? Милости просим - объясним.

Поделиться сообщением


Ссылка на сообщение

Гхм, первый вопрос, как нарисовать полупрозрачную кривую линию определенной толщины?

 

Алсо, насколько тупо нарисовать 8 гигантских (размером с уровень) текстурок для каждого типа блоков (ака солид, платформа и 2 слоя для метрвых петель + тоже самое, но для рельсов) и использовать их вместо мелких блоков?

Изменено пользователем 1001

Поделиться сообщением


Ссылка на сообщение

Всем привет,я рад что наткнулся на эту тему,я тут хотел с друзьями с форума создать файтинг,и одновременно приключение с мини играми,хотел у вас спросить в Game Macker возможно сделать такие-же уровни по типу как в соник Баттл?с возможностью ходить вверх и вниз?

Поделиться сообщением


Ссылка на сообщение
Гхм, первый вопрос, как нарисовать полупрозрачную кривую линию определенной толщины?

 

Алсо, насколько тупо нарисовать 8 гигантских (размером с уровень) текстурок для каждого типа блоков (ака солид, платформа и 2 слоя для метрвых петель + тоже самое, но для рельсов) и использовать их вместо мелких блоков?

1) Либо функцией отрисовки точек через формулу, либо много линий. Иначе никак.

 

2) В принципе, вполне логично. Но с отключением этих платформ за пределами экрана могут быть проблемы (а именно - вообще никакого отключения). Да и производительность будет страдать. Лучше все таки разбить на куски поменьше, к примеру размером с экран.

 

Всем привет,я рад что наткнулся на эту тему,я тут хотел с друзьями с форума создать файтинг,и одновременно приключение с мини играми,хотел у вас спросить в Game Macker возможно сделать такие-же уровни по типу как в соник Баттл?с возможностью ходить вверх и вниз?

 

Да, можно. Либо полностью 2Д в изометрии (как Streets Of Rage) либо полностью 3Д, как, собственно, в самом Баттле. Но во втором случае будет сложновато.

Изменено пользователем Джанкер

Поделиться сообщением


Ссылка на сообщение

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

 

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

Поделиться сообщением


Ссылка на сообщение

71252321.th.png

 

Дети в возрасте 0-20 лет. Если вы молоды, полны сил и идей и хотите создать свою игру на Гейм Мейкере (или еще чем-нибудь), то запомните одну вещь - у вас ничего не выйдет.

Поделиться сообщением


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

 

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

http://sf21.ru/Documents/Manuals/gm_002.php

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение
стоп,по моему там говорится как вставлять спрайты а не как их рисовать,просто я как-то не хочу брать чужие а хочу научится рисовать собственные))

 

Пейнт, мышка и глаза. Ах да, и еще прямые руки.

Поделиться сообщением


Ссылка на сообщение

хороший и смешной совет))спасибо,учту,вот только еще бы надо было научится рисовать в паинте,ну это я тогда уж сам,не буду в теме чат устраивать,спасибо за помощь и вообще тема очень полезна sl:)

Поделиться сообщением


Ссылка на сообщение

У меня есть идея с помощью Гамака и Ultimate 3D сделать порт Некст Гена для компа.Просто хотела спросить,потянет ли Гамак некстгеновские модели.

Поделиться сообщением


Ссылка на сообщение
У меня есть идея с помощью Гамака и Ultimate 3D сделать порт Некст Гена для компа.Просто хотела спросить,потянет ли Гамак некстгеновские модели.

Гамак уже подавится при отрисовке только одного Соника. Верхний лимит для него - 10000 вершин (для ГМ:p, это примерно графика Раша/Соник Р. Алсо, Джанкер вроде пытался что-то сделать в 3D, но получившееся жестко тормозит.

Поделиться сообщением


Ссылка на сообщение

Ultimate 3D да, выдержит. И покажет моделек десять на 10-20 ФПС. У меня при 20 лоу поли моделях то проседал, а вы тут про некст ген. Берите нормальный движок.

 

Алсо, Джанкер вроде пытался что-то сделать в 3D, но получившееся жестко тормозит.

На новом ноуте, кстати, не тормозит :p

Изменено пользователем Джанкер

Поделиться сообщением


Ссылка на сообщение

Вопрос таков:

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

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

Как это сделать, учитывая то, что обьект один, а уровней куча?

Изменено пользователем dadgs

Поделиться сообщением


Ссылка на сообщение
Вопрос таков:

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

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

Как это сделать, учитывая то, что обьект один, а уровней куча?

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

Поделиться сообщением


Ссылка на сообщение

Вопрос. Я новичек, и проблемы так и кишат :rolleyes: У меня спрайт состоит из нескольких картинок. Как сделать, чтобы была одна картинка? И как создать движение влево, вправо?

Поделиться сообщением


Ссылка на сообщение
Вопрос. Я новичек, и проблемы так и кишат :rolleyes: У меня спрайт состоит из нескольких картинок. Как сделать, чтобы была одна картинка?

 

http://sf21.ru/Documents/Manuals/gm_002.php

 

Ссылка была на предыдущей странице, что мешало почитать тему немного?

 

И как создать движение влево, вправо?

 

Почитать официальный мануал и посмотреть официальные примеры? Вы что, думаете в первом посте ссылки так просто, для виду прикреплены?

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Если идет проверка с галочкой Solid, то проверять, стоит ли игрок снизу (if obj_player.y<obj_platform.y) и ставить значение solid в false. Когда игрок выше платформы, ставить solid в true. Единственное, если выравнивание спрайта сделано по середине, то нужно будет вычесть те пиксели, на которые ушло выравнивание.

Поделиться сообщением


Ссылка на сообщение
Если идет проверка с галочкой Solid, то проверять, стоит ли игрок снизу (if obj_player.y<obj_platform.y) и ставить значение solid в false. Когда игрок выше платформы, ставить solid в true. Единственное, если выравнивание спрайта сделано по середине, то нужно будет вычесть те пиксели, на которые ушло выравнивание.

 

А нет, всё таки не получается, проверку нужно делать в графе с Коллизией, или в разделе Create?

Изменено пользователем Fle4er

Поделиться сообщением


Ссылка на сообщение

Незнал, стоит ли ради этого создовать новую тему так что вот:

Sonic Generations 2D (вернее закос SRU Engine под SG)

Некоторые спрайты взяты из GM HE(Hedgehog Engine) за это спасибо 1001.

Строго не судите! Делал от нечего делать)

<:Download:>

Кроме Mail.ru никуда грузиться нехотел.

Продолжать делать игру или нет?

Поделиться сообщением


Ссылка на сообщение
Строго не судите! Делал от нечего делать)

 

И как тут строго не судить?

Баги на багах...Недоработанность,картинка сжата,построение уровней плохое...Продолжать не буду...

 

Игры делаются с душой,а не от нечего делать...

Поделиться сообщением


Ссылка на сообщение

Уважаемые товарищи дети. Не зря же я считаю, что ситуация с фаниграми (и хакингом тоже) в России катастрофична, не зря же я написал в своей подписи, что у вас при наличии желания и отсутствии навыков все равно ничего не получится. Когда вы запомните, что чтобы создать вменяемого "соника" нужно сделать чуть больше, чем "блок туда, бадник совершенно без кода туда", а? Создание игры - это довольно таки кропотливый и относительно тяжкий труд. Мне, чтобы написать свой ГМЛ потребовался почти год, и то, в нем то и дело выскакивают какие-нибудь баги (например, вода начинает безбожно глючить у кого-нибудь). Ладно, к черту факт что нужно с нуля под себя писать. Но вы даже не умеете правильно обращаться с готовыми движками, и не хотите уметь, а зачем? в движке уже все есть, поставил на уровень и лады.

 

Оххх. Я могу еще долго распинаться и негодовать, поэтому скажу следующее:

 

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

Изменено пользователем 1001

Поделиться сообщением


Ссылка на сообщение
Незнал, стоит ли ради этого создовать новую тему так что вот:

Sonic Generations 2D (вернее закос SRU Engine под SG)

Некоторые спрайты взяты из GM HE(Hedgehog Engine) за это спасибо 1001.

Строго не судите! Делал от нечего делать)

<:Download:>

Кроме Mail.ru никуда грузиться нехотел.

Продолжать делать игру или нет?

Сделано на "скорую руку". Всё криво. И музыка ужасна...Особенно, когда берешь звездный щит и его музыка играет и самого уровня.

Не дойдя до конца я выключил игру, ибо страшно...

Для начала выучи ГМЛ-кода, научись работать в ГМ и...наберись ТЕРПЕНИЯ!

Поделиться сообщением


Ссылка на сообщение
Незнал, стоит ли ради этого создовать новую тему так что вот:

Sonic Generations 2D (вернее закос SRU Engine под SG)

Некоторые спрайты взяты из GM HE(Hedgehog Engine) за это спасибо 1001.

Строго не судите! Делал от нечего делать)

<:Download:>

Кроме Mail.ru никуда грузиться нехотел.

Продолжать делать игру или нет?

очень похоже на поколения ! глюками и багами ! Ужастно ! сделай получше тогда можно будет обсуждать , ибо большие глюки с рельсами(покрасивее сделай),вылеты после того как взял жизнь. Хотя пока проект с глюками и ошибками желаю тебе автор удачной разработки !(может чёто выйдет !)!

Поделиться сообщением


Ссылка на сообщение

1001 можешь объяснить дела со спрайтами?

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

Буду очень признателен...

 

очень похоже на поколения ! глюками и багами ! Ужастно ! сделай получше тогда можно будет обсуждать , ибо большие глюки с рельсами(покрасивее сделай),вылеты после того как взял жизнь. Хотя пока проект с глюками и ошибками желаю тебе автор удачной разработки !(может чёто выйдет !)!

 

Если человек не вкладывает свою душу в игру - это не игра,а незасмысловатый и глупый платформер высосаный из пальца...

Как многие до меня более продвинутые ГМшники говорили:

Создание игры - это довольно таки кропотливый и относительно тяжкий труд

 

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

 

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

 

Уважаемые товарищи дети. Не зря же я считаю, что ситуация с фаниграми (и хакингом тоже) в России катастрофична, не зря же я написал в своей подписи, что у вас при наличии желания и отсутствии навыков все равно ничего не получится.

 

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

Опять же не об этом...

Если есть хотение,стремление изучить ГМ (про ГМЛ я молчу,ибо его учат единицы),то можно создать хороший платформер,выложить,прочитать критику и учиться на своих ошибках,что не доработано,что не сделано,то можно в полне создать хороший платформер,не взирая на всю сложность и длительности работы...

Изменено пользователем Crying_Boy

Поделиться сообщением


Ссылка на сообщение
1001 можешь объяснить дела со спрайтами?

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

Бл, я же говорил, что все что нужно в событии Draw. В движке Дамизеана примерно вот такой вот код:

if anim_seq==1 {
anim_firstframe=3;
anim_lastframe=6;
anim_speed=8;
Head.anim_angle_frame=head_frame;
}

 

И в нем как можно понять по названиям переменных:

anim_firstframe - первый кадр секвенса

anim_lastframe - последний кадр секвенса

anim_speed - скорость анимации секвенса

(на последнюю строку не смотрите, это из моего движка кусок уже)

 

Вся анимация суется в один спрайт, из которого соответственно и берутся номера кадров. Отрисовывается просто:

draw_sprite_ext(sprite_index,frame,x,y,image_xscale,-1,image_angle,c_white,1);

Где frame - номер текущего кадра. Сам кадр меняется вот так:

if timer>100 {
timer=0;
frame+=1;
}

 

Чего непонятного - в упор не вижу. Можно было понять за две минуты.

 

(про ГМЛ я молчу,ибо его учат единицы)

Если есть желание, игру можно сделать и на кнопках. Хорошую игру. Сам видел.

Изменено пользователем Джанкер

Поделиться сообщением


Ссылка на сообщение

Как сделать так, что при движении по наклонной поверхности, спрайт наклонялся?

Поделиться сообщением


Ссылка на сообщение
Как сделать так, что при движении по наклонной поверхности, спрайт наклонялся?

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

Поделиться сообщением


Ссылка на сообщение

простите что возвращаюсь к старому вопросу,вот собираюсь попробовать сделать что то похожее на уровень в 3д как в соник баттл,как это сделать через game macker? или надо для этого какую нибудь дополнительную программу скачивать?

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×