Вторник, 19 Марта 2024, 10:42

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [354]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [144]
Статьи о программах для создания игр, уроки и описания.
Софт [39]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [160]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [128]
Статьи, которые не вошли в определённые разделы.
Наш опрос
На каких мобильных устройствах вы играете?
Всего ответов: 952
Главная » Статьи » Движки и Гейммейкеры

Функции Drag&Drop кнопок и GML кода в GM (Часть1 - Вкладка Move)
Многие новички в GM первым делом начинают обучение с специальных кнопочек, перетаскивая которые мы составляем логические цепочки и устанавливаем поведения объектам. Эта большая статья расскажет вам, как использовать кнопки и как их записывать в коде. Итак начнём...
Блок 1 - Движение (move)




  • Move Fixed - Движение объекта (8 направлений)
    Эта кнопка позволяет задать направление и скорость движения объекта. Чаще всего используется в событии Create, так как именно при создании объекта нам иногда будет необходимо его заставить двигаться (или остановиться).
    Код
    motion_set(направление,скорость )\\ направления: вверх 90, вниз 270, влево 180, вправо 0; скорость: любое положительное число.



  • Move Free - Движение объекта (свободное направление)
    Эта кнопка позволяет задать любое направление и скорость движения объекта. Как и Move Fixed чаще всего используется в событии Create.
    Код
    motion_set(направление,скорость )\\ наверняка вы заметили, что код такой же, как и у Move Fixed и неудивительно, ведь чтобы точнее указать направление нам нужно будет поставить точное значение, например: 67° (без знака °).



  • Move Towards - Движение к точке
    Эта кнопка поможет нам переместить объект к определённой точке на уровне (комнате). нам необходимо будет указать позицию по X, позицию по Y и скорость. Как только мы зададим необходимые параметры и запустим игру мы заметим, что объект начинает движение из своей стартовой позиции к той, что мы указали в кнопке с определённой скоростью.
    Код
    move_toward_point(x,y,скорость) \\ x,y - позиция в комнате (можно закрепить за объектом, например: ob_player.x, ob_player.y); скорость: любое положительное число.



  • Speed Horizontal - Движение по горизонтали (влево, вправо)
    Порой нам нужно сделать так, чтобы объект изменил скорость по горизонтали. Для таких случаев и используем Speed Horizontal и устанавливаем собственную скорость. Можно использовать например в событии столкновения. Герой сталкивается с обезьянкой и она убегает вправо/влево. Движение обезьянки как раз можно сделать с помощью Speed Horizontal.
    Код
    hspeed=скорость \\ скорость: любое число (положительное - влево, отрицательное - вправо).



  • Speed Vertical - Движение по вертикали (вверх, вниз)
    По аналогии с Speed Horizontal эта кнопка позволяет изменить скорость объекта, но по вертикали.
    Код
    vspeed=скорость \\ скорость: любое число (положительно - вниз, отрицательное - вверх).



  • Set Gravity - Установка гравитации
    О, великая гравитация. В некоторых играх она присутствует, например платформеры (Sonic, Mario). Для того, чтобы установить гравитацию нам нужно указать её направление и скорость. Чаще всего, нам потребуется направление гравитации вниз, т.е. значение = 270, а скорость любое число (если число отрицательное, то гравитация будет работать наоборот, то есть противоположно нашему значению, следовательно если мы установили значение 270, то гравитация будет работать в направлении 90).
    Код
    gravity_direction=направление; gravity=скорость.



  • Reverse Horizontal - Реверс по горизонтали
    Реверс - это смена направления движения обратного данному. То есть если наш объект двигался вправо, то когда произойдёт событие Reverse Horizontal, то объект начнёт двигаться влево.
    Код
    hspeed=-hspeed.



  • Reverse Vertical - Реверс по вертикали
    По аналогии с Reverse Horizontal эта кнопка поможет нам развернуть объект, но уже по вертикали.
    Код
    vspeed=-vspeed.



  • Set Friction - Установка трения
    Все мы слышали от учителей по физике о трении. Трение в GM позволяет постепенно замедлять объект, а потом и полностью остановить его. Это легче понять, если представить, что автомобиль едет по асфальту быстро, а по грязи всё медленнее, медленнее пока полностью не остановится. Чтобы установить трение, нам необходимо указать величину. Чаще всего мы будем использовать небольшие числа например: 0,1; 0.01; 0.05
    Код
    friction=величина \\ величина: любое число (если число отрицательное, то будет что-то похожее не на трение, а на гравитацию т.е. скорость будет постепенно увеличиваться)



    Блок 2 - Перемещение (jump)



  • Jump to Position - Переместится (прыгнуть) в определённую позицию
    Иногда нам нужно будет, чтобы объект мгновенно переместился в другую точку экрана. Это можно осуществить с помощью этой кнопки. Для этого указываем положение X и положение Y на экране, и объект переместится в заданную точку.
    Код
    x=x; y=y.



  • Jump to Start - Переместится (прыгнуть) в начальную позицию
    Эта кнопка заставляет объект переместится в ту позицию, в которой он был создан.
    Код
    x=xstart y=ystart.



  • Jump to Random - Переместится (прыгнуть) в случайную позицию
    C помощью этой кнопки мы сможем случайно переместить наш объект. Например если мы выберем значения 640 и 480, то объект переместится случайно по всей комнате (если она у нас размером 640х480 пикселей)
    Код
    move_random(шир,выс).



  • Align to Grid - Выровнять объект по сетке
    Если мы хотим выровнять наш объект по сетке, то придётся использовать эту кнопку. Мы указываем ширину и длину ячейки и наш объект автоматически выравнивается по сетке.
    Код
    move_snap(шир,выс).



  • Wrap Sreen - Обогнуть экран
    Вспомните игру Pac-Man. Помните как герой уходил за пределы экрана и появлялся в противоположной позиции? Эта кнопка как раз для такого действия. Вы указываете направление на выбор: По горизонтали, По вертикали, В обоих направлениях и наслаждаетесь эффектом.
    Код
    move_wrap(1,0,объект) \\ по горизонтали; move_wrap(0,1,объект) \\ по вертикали; move_wrap(1,1,объект) \\ в обоих направлениях.



  • Move to Contact - Движение до столкновения
    Эта кнопка позволит нашему объекту двигаться до тех пор, пока он не столкнётся с другим, чаще всего твёрдым, объектом, после чего объект остановится. Это действие обычно используют в событии столкновения (Collision).
    Код
    move_contact_solid(направление,макс. направление).



  • Bounce - Рикошет
    Да да да. Эта кнопка заставляет объект "отрикошетить" от другого объекта прямо как в футболе. Нам нужно лишь выбрать будет ли столкновение точным/не точным и с какими объектами будет сталкиваться наш объект (твёрдыми/со всеми). Чаще всего этот код вставляют в событие столкновения (Collision).
    Код
    move_bounce_all(true)




Ну а пока что всё. Потренируйтесь с полученными знаниями, попробуйте сделать пример на каждую из кнопок и вы быстро научитесь программировать на Game Maker`е. Спасибо и до новых встреч, ваш Naruto-63.
Категория: Движки и Гейммейкеры | Добавил: Eshford (30 Марта 2011)
Просмотров: 10729 | Комментарии: 4 | Рейтинг: 5.0/4 |
Теги: GM, Game Maker, Drag & Drop, функции, помощь по game maker, для новичков, код, Кнопки
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Функции Drag&Drop кнопок и GML кода в GM (Часть1 - Вкладка Move)», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 4
+1-
4 ScarsSoul   (11 Июля 2011 14:50) [Материал]
ScarsSoulВ Jump to Random выбираемые значения - это не диапазон рандом позиций, а выравнивание по сетке. как параметры/значения Align to Grid

+1-
3 ScarsSoul   (11 Июля 2011 03:56) [Материал]
ScarsSoulНе хочу показаться неблагодарным (спс за тутор) всезнающим занудой (я только сегодня начал изучать GM), но открыв либу в Library Maker я заметил, что этим действиям назначены другие функции:

Move Fixed - action_move
Move Free - action_set_motion
и т.д. все с префиксом action.

В вике я этих функций не нашел, хотя GM показывает их как встроенные – может их можно использовать только для кнопок?

P.S.
Работу Bounce (если нельзя использовать action_bounce) полностью опишет такой код:

[code]
if(B_solid) // B_solid переменная определяет сталкиваться со всеми или только с твердыми
{
move_bounce_solid(B_precise); // B_precise - точность
}
else
{
move_bounce_all(B_precise);
}
[code]

+4-
2 Eshford   (02 Апреля 2011 14:23) [Материал]
EshfordДа, извиняюсь. Упустил момент!

+3-
1 GameMix   (02 Апреля 2011 07:07) [Материал]
GameMixСтатья хорошая, но все-таки мелкие детали упускать не нужно. В событии Move Fixed скорость может быть и отрицательной. Но при этом движение будет в противоположном направлении. Это тоже важно.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Quest
  • Axiom Engine
  • Danmakufu
  • Torque 2D
  • Devana
  • GLEngine2D
  • ReMooD
  • Bipsi
  • Doom Legacy
  • Mortal Szombat
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг