Приветствую Вас, Гость! Регистрация RSS
Среда, 18.10.2017
Главная » Статьи » Уроки » Для ветеранов

Использование GMPhysics.
В этом уроке я разберу использование библиотеки GMPhysics. Сначала нам требуется инициализировать свою библиотеку, потом создать несколько статичных и динамичных объектов. 
Прим. Динамичный объект движется и подвергается действию физики (мяч, ящик и т.д.), а статичный просто стоит в твёрдом состоянии (пол, стена). 
Теперь скачайте архив с пустым примеров и откройте файл gmphy.gmk это будет наш проект в котором уже включена библиотека GMPhysics.
Теперь в нашем проекте создаём объект o_control который будет контролировать действие библиотеки и инициализирует её. В этом объекте нужно создать событие Game Start и написать туда код который будет инициализировать библиотеку:
init_physics("GMPhysics.dll");
А в событие шага напишите функцию устанавливающую скорость игрового мира:
update_bodies(0.03);
Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком быстро то уменьшите. 
Дальше создайте два объекта кубов и нарисуйте им по спрайту. Первый будет статичным полом, а второй динамичным и подвластным гравитации. Откройте статичный объект и пишем в событие создания такой код:
h = create_body(x,y,0,SHAPE_BOX,32,32);
Теперь нужно разобрать аргументы функции: Первый и второй это координаты объекта, третий - плотность (ноль это статичный), четвёртый это форма объекта. В нашем случае это куб и следующие два аргумента его длинна и ширина. Так же можно использовать другие константы: SHAPE_SPHERE который делает форму круга и тогда аргумент пять это радиус.
С этим объектом закончили перейдём к динамичному. В событие его создания пишем почти тот же код:
h = create_body(x,y,1,SHAPE_BOX,32,32);
И в событие шага:
object_update(h);
Который заставляет его двигаться. Расставляем объекты в комнате и тестируем. Если всё хорошо идём дальше. Теперь создадим из динамичного куба героя для платформера. Для этого внесём изменения в код нашего динамичного ящика. В событие шага следует дописать такой код:
if keyboard_check(ord("A"))
{
set_body_hspeed(h,-50);
}
if keyboard_check(ord("D"))
{
set_body_hspeed(h,50);
}
if keyboard_check(ord("W"))
{
if (!place_free(x,y+6))
    set_body_vspeed(h,-200);
}
Давайте разберём функции:
set_body_hspeed(id,hspeed) - устанавливает горизонтальную скорость.
set_body_vspeed(id,vspeed) - устанавливает вертикальную скорость.
Вот и всё, передвижение героя по миру готово! Если будут вопросы, спрашивайте, не стесняйтесь.
Прим. Если выбивает ошибку то сделайте объект o_control постоянным, в событие Game Start этого объекта перетащите кнопку "перейти в следующую комнату". Создайте ещё одну комнату, которая будет находится впереди игровой и поставьте туда o_control. Из игровой комнаты его удалите.

Категория: Для ветеранов | Добавил: Stalker5889 (19.12.2011) | Автор: stalker5889 E
Просмотров: 762 | Комментарии: 1 | Теги: Физика, урок по созданию платформера, GMPhysics, Платформер | Рейтинг: 5.0/2
Всего комментариев: 1
1  
привет всем

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]