Суббота, 26.05.2012, 18:11


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

Меню сайта
Категории каталога
Создание игр [170]
Статьи об общих понятиях связанных с созданием игр
Движки и Гейммейкеры [85]
Статьи о программах для создания игр
Игры [39]
Статьи об играх, в том числе и сделанных на гейммейкерах
Софт [25]
Различные программы, в том числе в помощь игроделам
Разное [61]
Статьи, которые не вошли в определённые разделы
Наш опрос
Каким поисковиком пользуетесь?
Всего ответов: 15301
Главная » Статьи » Движки и Гейммейкеры

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




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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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




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

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

0  
3 ScarsSoul   (11.07.2011 03:56)
Не хочу показаться неблагодарным (спс за тутор) всезнающим занудой (я только сегодня начал изучать 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]

+3  
2 Alexis-63   (02.04.2011 14:23)
Да, извиняюсь. Упустил момент!

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

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
Rumblah!
Green Elf Game Engine
DX Studio
3D Game Maker
Seccia
Multimedia Fusion
GZDoom
Wintermute Engine
OpenBlox
Genesis3D
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг