Название: Обучение Extreme Physics. Первый урок Отправлено: lucheus от Январь 27, 2012, 08:46:28 Обучение Extreme Physics. Первый урок
Итак, всем привет. В последнее время все больше и больше накапливается потребность к использованию физики в играх. Спрашивал людей на форуме, но оказалось что всего лишь несколько людей знают физику в Game Maker. Я решил исправить это. Из всех я выбрал Extreme Physic (EP), т.к. она самая емкая для использования. В этом уроке мы пройдем самую корочку EP, но и это нам даст уже многое... Я буду использовать 2.2 версию. Не забывайте, когда создадите новый файл игры, выбрать EP в Extension Package. Приступим. Прежде всего нужно знать что в EP есть два типа объектов: статический (static) и динамический (dynamic). Статический объект неподвижен, то есть составляет твердую основу, а динамический тот который воздействован разным силам и производит движение на экране. Например, пол в вашем доме можно приставить статическим обьектом, а кружку падающую на пол (необязательно падающию), это динамический объект. Для удобства мы инициируем свои дополнительные константы Добавить ресурс => Определить константы Там пишем: Имя: colide1a Переменная: 1; Имя: colide1b Переменная: 1; Имя: grav Переменная: 0.4 И вот мы загружаем два спрайта: статического и динамического объектов и соответствующе называем их: static и dynamic. Центрируем спрайты. Пусть спрайт стат. обьекта будет квадрат, а дин. кружок. Создаем обьект и называем его system Код: (create) global.world=ep_world_create() // Инициируем физический мир, нужно писать это всегда // global.world - пременная нашего мира ep_world_set_settings(global.world,1,20,10,0.1,0.5,0,0.5,1); // Устанавливаем глобальные настройки для мира Код: (end step) ep_world_update_contacts(global.world); // Для столкновений в физическом мире ep_world_simulate_step(global.world); // Что бы "Время не остановилось" Код: (В physics_object_set пишем:) ep_body_set_position(global.world,argument0,x,y,degtorad(image_angle)); Код: (physics_object_update пишем:) if !ep_body_is_sleeping(global.world,argument0) { x = ep_body_get_x(global.world,argument0); y = ep_body_get_y(global.world,argument0); image_angle = radtodeg(ep_body_get_rot(global.world,argument0)); } Создаем два объекта: static и dynamic и присваиваем им свои спрайты. Выбираем обьектstatic Код: (create) body = ep_body_create_static(global.world); // Открыто заявляем что это статический объект в нашем мире shape1 = ep_shape_create_box(global.world,body,sprite_width,sprite_height,0,0,0,1); // Делаем ему квадратную маску размерами своего спрайта ep_shape_set_collision(global.world,body,shape1,collide1a,collide1b,0); // Пишем о столкновениях с другими объектами ep_shape_set_material(global.world,body,shape1,0.4,0.4,0,0); // Устанавливаем его характеристики physics_object_set(body); // Наш скрипт Код: (destroy) ep_body_destroy(global.world,body);// Стандартная функция удаления из "мира физического" Код: (create) body = ep_body_create_dynamic(global.world,false); // Динаический объект shape1 = ep_shape_create_circle(global.world,body,sprite_height/2,0,0,0,1); // Но только теперь это круглая маска размера спрайта ep_shape_set_collision(global.world,body,shape1,collide1a,collide1b,0); // Столкновения ep_shape_set_material(global.world,body,shape1,0.4,0.4,0,0); // Характеристики ep_body_calculate_mass(global.world,body); // Автоподсчет массы и определение доп. характеристик ep_body_set_gravity(global.world,body,0,grav); // Устанавливаем гравитацию для объекта physics_object_set(body); Код: (end step) physics_object_update(body); Снова открываем объект system Код: (Glob Left Button) instance_create(mouse_x,mouse_y,dynamic) // Что бы мы могли проверить Расставляем объекты в комнате, не забывая что первым ставим в комнату объект system, иначе могут быть проблемы с global.world Мы получили простую физику шариков и ознакомились с основными функциями Extreme Physic Название: Re: Обучение Extreme Physic. Первый урок Отправлено: Tulpan от Январь 28, 2012, 13:19:36 Отличная статья! sm_good Надо будет попробовать сделать игру с физикой! sm:)
Название: Re: Обучение Extreme Physic. Первый урок Отправлено: Alcatraz от Январь 28, 2012, 13:26:58 молодец! sm_good sm_respekt
Название: Re: Обучение Extreme Physic. Первый урок Отправлено: fair_fire от Январь 28, 2012, 19:02:11 вообще - то не очень я про урок Буржуйский титориал мне показался понятнее
А вот если бы кто ни будь, сделал справку с переводом по функциям http://www.maartenbaert.be/extremephysics/reference/ цены бы такой справке не было бы Название: Re: Обучение Extreme Physic. Первый урок Отправлено: lucheus от Январь 29, 2012, 03:52:59 вообще - то не очень я про урок Буржуйский титориал мне показался понятнее чего тебе непонятно?А вот если бы кто ни будь, сделал справку с переводом по функциям http://www.maartenbaert.be/extremephysics/reference/ цены бы такой справке не было бы Название: Re: Обучение Extreme Physics. Первый урок Отправлено: IGroK_GM от Июнь 26, 2013, 00:55:48 хм... вроде добавляю константы, а он всё равно на них жалуется sm_sad
Название: Re: Обучение Extreme Physic. Первый урок Отправлено: DANTES от Июнь 26, 2013, 10:36:22 вообще - то не очень я про урок Буржуйский титориал мне показался понятнее Я делал на этот счёт уроки:А вот если бы кто ни будь, сделал справку с переводом по функциям http://www.maartenbaert.be/extremephysics/reference/ цены бы такой справке не было бы 1 урок http://forum.hellroom.ru/index.php?topic=15167.msg184690#msg184690 2 урок http://forum.hellroom.ru/index.php?topic=15176.msg184991#msg184991 3 урок http://forum.hellroom.ru/index.php?topic=15181.msg185201#msg185201 Статьи являются переводом справки. Добавлено: Июнь 26, 2013, 10:37:29 хм... вроде добавляю константы, а он всё равно на них жалуется sm_sad У меня такая же проблема была с константами. Я за место них сделал обычными переменными.Название: Re: Обучение Extreme Physic. Первый урок Отправлено: AnderS от Август 10, 2014, 11:08:23 Просто автор в константах сделал ошибку :facepalm: (в константы записал colide1a и colide1b, а в коде написал collide1a и collide1b). А так все работает. Мне только интересно где изменять маску dynamic объекта (изменяя маску у спрайтов ничего не происходит).
Название: Re: Обучение Extreme Physics. Первый урок Отправлено: VSSgames от Март 26, 2016, 21:07:27 Киньте ссылку на Extreme Physics.
Название: Re: Обучение Extreme Physics. Первый урок Отправлено: Fur от Март 26, 2016, 21:19:21 Цитировать Киньте ссылку на Extreme Physics, пожалуйста. Лови: http://forum.hellroom.ru/index.php?topic=20718.0 (http://forum.hellroom.ru/index.php?topic=20718.0) |