Здравствуйте уважаемые пользователи GM. Недавно я начал учится, как его здесь часто называют гамаку. Скачал переведённую документацию к 6,7,8 версиям, прочитал раз пятьсот. В процессе создания игр разобрался, даже немного в GML (благо небольшой опыт в геймдеве есть), но совершено не понимаю значения событий и действий. Вы сразу же начнетё меня ругать мол тупой нуб,где такие только берутся и т.д., иле же заставите снова читать справку. Я пытаюсь самостоятельно вникнуть в события и действия GM где-то месяц. Качал уроки,туториалы,исходники, но они мне не нравится, так как не дают знаний в GM. Уроки учат тупо повторят , а я не хочу делать игры по готовым шаблонам.А про исходники я уже не говорю, но это сугубо моё мнение. Но мои мозги умеют думать и имеют очень-очень отдалённые знания о событиях и действиях ,но этих познаний не хватает для создания интересных игр. В общем пожалуйста объясните понятным языком для дебилов значения действий и событий в GM. P.S. И ещё я правда готовов учится гамаку Люблю получать +
Сообщение отредактировал Gefre - Пятница, 26 Ноября 2010, 00:35
Я не силён в обьяснениях, но попробовать можно... Попытаюсь обьяснить на интуитивно человеческом уровне. И так начнем: Ну к примеру ты хочешь сделать событие столкновения с противником, набиваешь событие Collision, выбераешь обьект к которому это событие должно определяться, знай одно событие Collision определяется все время при соприкосновении с заданым тобой обьектом. Потом ты думаешь, что же делать,
Quote
В процессе создания игр разобрался, даже немного GML
, "и тут я подумал"-подумал ты, "поставлю я сюда обрезок кода speed=0", ну вот что происходит, столкновение не получается (возможно неполучилось), ставишь галочку solid в том обьекте, который ты задал (предпологаемо у Player) в событии столкновения. Так со столкновениями покончено, думаю дальше разберешься.
Так но тут то ясно, что Collision лишь второстепенно, но и не мало важное, нужное событие. Ладно теперь обсудим Create: В событии Create(событие создания) мы определяем начальные параметры, которые ты сам же и придумываешь. Ну к примеру hp=100, direction=90 и т.п. Так-же тут можно создать образец другого обьекта a=instance_create(x,y,Voin) Таким образом переменной "a" можно будет управлять из других событий. Ну думаю вводный курс о Create можно закончить.
Теперь о Step (событие шага, которое происходит каждую секунду), самое наиважнейшее событие: Во сновном здесь и происходит самое важное и интересное, кстати о переменной "а", теперь можно вставить вырезку кода и написать if hp<=0 { with(a) instance_destroy() таким образом a погибнет вместе с хозяином. instance)destroy() }
Так-же если как я предпологаю это пушка танка или еще что a.x = x a.y = y ну и остальное твоя фантазия. Думаю все это ты видел в других примерах, я обучался по чужим исходникам, со временем выробатывал свою логику, что на Delphi, что на Prolog, ну и пока остановился на GML.
Что такое Draw? "Ура! я порылся в словаре, это оказывается переводится как рисование!" - подумал ты "О! оказывается в справке написано, что это событие рисования!"-сновая подумал ты. Да ты прав это событие рисования, работает оно подобно Step, только тут во сновном происходят разные, миловидные, рисовательные штучки. Скажу лишь за основу главное. всегда если обьект должен рядом с собой рисовать что-то еще, чтобы он не терял спрайт, первым кодом держи отрисовку спрайта: draw_sprite(sprite_index,0,x,y) поставь -1 во втором пораметре, если спрайт анимированый. Все тут я думаю закончу. думаю "+" поставишь.
В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
Сообщение отредактировал Gavolot - Пятница, 26 Ноября 2010, 00:51
Спасибо Gavolot,что дополнил мои знания о событиях.Очень понравилось,что описал все кодом, не люблю тыкать кнопки в конструкторах, предпочитаю программировать на легких языках.Поэтому я не сделал не одной игры в конструкторах, потому что мне кажется делать проекты однодневки не очень прикольно. Сразу удалил RGM и всё в этом роде.К стати держи плюс.Мог правда не писать про события столкновения, так как это самое простое и можно понять сделав игру описанную в справки А теперь попробую подвести сам итоги о событиях в GM, осталось теперь понять действия. И так начнём Collision events (События столкновения)-делается когда твёрдые объекты контактируют друг с другом.При помощи этого события можно сделать любое поведение для контакта объектов.Иле же что вроде физики в игре. Create event (Событие создания)- делается для создания всякой хрени в игре жизней,броньки,очков т.д или же выпадение из чего либо всякой всячины. Step events (События шага)-нужно для непрерывных событий, создания AI для чего либо. Draw event (Событие рисования)-нужно для непрерывных событий рисования, наверное можно сделать всякие графических эффектов взрывы,стрельба,смерть ГГ и т.д и подозреваю что анимацию направлений Г.Г. К сожалению Gavolot не описал другие события ну да ладно, попробую сам.Оставшиеся действия почти все мне понятны, но нужно сформулировать мысли, поэтому отпишусь чуть позже Люблю получать +
Сообщение отредактировал Gefre - Пятница, 26 Ноября 2010, 11:28
Взрывы можно делать и другим образом, типо того что один обьект создаёт обьектов 20, которые рандомно разлетаются. repeat (30) { a=instance_create(x,y,Booma) a.direction= random(360) a.speed = random (5) a.image_angle= a.direction } В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
Сообщение отредактировал Gavolot - Пятница, 26 Ноября 2010, 12:11
Спасибо Gavolot возьму на вооружение, но нужно уточнить про триггеры.Как работают триггеры в GM, просто после PowerPoint где они тоже используются путаница в голове. Люблю получать +
Я не использую тригеры, можешь либо забыть про них, либо эксперементировать. В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
Ну вообще-то я и хочу сделать качественную игру на GM. Если честно я сидел на этом форуме как гость где-то с мая этого года.Сначала постигал азы геймдева,потом искал конструктор сначала это были Map001,RGM,RPGMaker затем я выбрал Construct, но в то время у него не было большой русскоязычной поддержки. И совсем недавно у меня появилась идея создать качественную стрелялку платформер, для этого я выбрал гамак. Сейчас пишу сценарий к игре.В игре я постараюсь сделать интересный сюжет,качественную графику,затягивающий геймплей и офигенные видюхи. Вы скажете что это очень сложно, но я готов довести игру до конца благо умею работать во flash,fhotoshop и всегда писал хорошо сочинения в школе и доводил дела до конца. Всего у меня где-то десять идей для игр(пока что) Если хотите где-то дня через три выложу предысторию к своему проекту.
Добавлено (26.11.2010, 15:07) --------------------------------------------- Наконец то сформулировал мысли и дописываю значения события в GM (возможно поможет кому нибуть) Key Press events (События нажатия клавиши)-срабатывает один раз по нажатию клавиши и не повторяется до следующего нажатия клавиши,используется для создания прыжка,движения,удара Г.Г. Key Release events (События отпускания клавиши)-так же и Press events срабатывает один раз, но только при отпущении клавиши. Destroy event (Событие уничтожения)-нужно для отнимания очков и всего в этом роде при уничтожении объекта, и может меня посчитают тупым, но оно наверное(я точно не уверен) может использоваться для показа game over. Пока все, остальные слишком долго писать.Пожалуйста скажите правильно ли я растолковываю понятия событий в GM, если нет исправьте меня или дополните.
Немного исправил ошибочки... особенно обрати внимание на Destroy Event... Это не то о чём ты думаешь, исправленная версия под спйлером
События: Collision event (Событие столкновения) - используется, когда твёрдые объекты контактируют друг с другом. При помощи этого события можно сделать любое поведение для контакта объектов. Create event (Событие создания) - делается для создания всяких переменных в игре жизней, брони, очков т.д. Step event (Событие шага) - нужно для непрерывных событий, создания AI, непрерывных эффектов, движения. Draw event (Событие рисования) - нужно для непрерывных событий рисования. Рисует всякие графические эффекты, показывает на экране переменные. Key Press event (Событие нажатия клавиши) - срабатывает один раз по нажатию клавиши и не повторяется до следующего нажатия клавиши, используется для создания прыжка, движения, удара Г.Г. Key Release event (Событие отпускания клавиши) - так же как и Press event срабатывает один раз, но только если клавиша отпущена. Destroy event (Событие уничтожения) - нужно для действий, которые будут воспроизводить только тогда, когда объект уничтожается.
destroy event не нужное на мой взгляд событие, событие уничтожения можно сделаить кодом, я уже показывал пример. if hp<=0 {instance_destroy()} В общем что-то делаю, но пока не пойму ни как :) Тень - выражение основной сущности человека.
Спасибо большое Naruto-63,держи плюс. А ведь я думал, что намудрил с Destroy event, но благодаря тебе разобрался. Небольшая просьба к тебе Naruto-63 объясни пожалуйста остальные события и если не сложно действия.С меня плюс.
Добавлено (26.11.2010, 16:26) --------------------------------------------- Gavolot да я с тобой согласен, что destroy event не нужно, поэтому я с ним и запутался, потому что всегда думал что уничтожение объекта нужно писать через код
Спасибо zik13 теперь насчёт действий можно не парится всё понятно,только события там слишком кратко описаны. zik13 держи + в репу.А разве ссылки на сторонние ресурсы посвящённые геймдеву не запрещено давать? Очень мне интересно почему я за два месяца поисков не нашёл этот сайт. Люблю получать +
Гуглил по полной эти два месяца, не нашёл,вообще первый сайт где понятно написано про события и действия в GM.Всё равно спасибо zik13. Теперь буду там юзать. И наверное потихонечку начну делать игры. P.S.Небольшой вопрос, выкладывать ли предысторию моей стрелялки, или же дописать весь диздок(1,5 м уйдёт) Люблю получать +
Начнём с первой вкладки Move 1-Движение в направении...стрелочки красные в разные стороны. Позволяет применить обьекту разное направление движения и задать скорость. например можно использовать для того чтобы сделать летящий шарик, например делаем ему направление во все стороны кроме центра (остановки) и задаём скорость например 5 и запустим. шарик будел тететь в одну из заданных сторон а если заново запустить игру то скорее всего будет лететь уже в другую сторону... надеюсь понял =) 2-Установить движение...стрелочки синие в разные стороны. Тоже самое что и 1. только нам нужно будет самим задавать точное направление движения и его скорость. например чтобы сделать случайный полёт в какую-то сторону нужно вписать в поле "направелние" random(360) 3-Движение к точке, красная стрелочка с синим кружочком. Позволяет двигаться обьекту к какой либо определённой точке например х=505 y=12 speed=12. Можно попробовать вставить в столкновение с другим обьектом. Тогда например если наш герой столкнётся с этим обьектом этот обьект улетит куда нужно 4 и 5-Стрелочки красные вправо и вниз- это установить вертикальную или горизонтальную скорость (я никогда не использую) но это например если твой обьект столкнулся например со стеной то ставим speed=0 и наш обьект остонавливается 6-Установить гравитацию - например для нашего героя. Если он прыгает, то устанавливаем гравитацию 0.9 и он падает на земля (в создании платформера самое сложное, даже я не смогу сделать) 7 и 8 Это развернуться по вертикали или по горизонтали (разворачивающиеся стрелочки красные) Позволяет развернуться обьекту по горизонтали или по вертикали (внимание изменяется направление обьекта а не обьект со спрайтом то есть спрайт не будет меняться) 9- Изменить трение (двойная стрелочка красная) - нужна для создания трения, например при отпускании клавиши наш герой медленно останавливается а не как вкопанный резко стоит (чаще используються очень маленькие значения (0.1 или 0.2) ) Извини но это пока-что всё очень долго писать + писал с ошибками надеюсь поймёшь :p
Ну предыстрою моё игры (стрелялки платформера), постапакалипсис.Иле же дописать весь сценарий уйдет минимум полтора месяца.Но это сейчас не моя основная работа, буду получать опыт делая надеюсь необычную TDS. Помоему я начинаю флудить Люблю получать +