Использование GMPhysics. В этом уроке я разберу использование библиотеки GMPhysics. Сначала нам требуется инициализировать свою библиотеку, потом создать несколько статичных и динамичных объектов. Прим. Динамичный объект движется и подвергается действию физики (мяч, ящик и т.д.), а статичный просто стоит в твёрдом состоянии (пол, стена). Теперь скачайте архив с пустым примеров и откройте файл gmphy.gmk это будет наш проект в котором уже включена библиотека GMPhysics. Теперь в нашем проекте создаём объект o_control который будет контролировать действие библиотеки и инициализирует её. В этом объекте нужно создать событие Game Start и написать туда код который будет инициализировать библиотеку:
Code
init_physics("GMPhysics.dll");
А в событие шага напишите функцию устанавливающую скорость игрового мира:
Code
update_bodies(0.03);
Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком медленно то уменьшите. Дальше создайте два объекта кубов и нарисуйте им по спрайту. Первый будет статичным полом, а второй динамичным и подвластным гравитации. Откройте статичный объект и пишем в событие создания такой код:
Code
h = create_body(x,y,0,SHAPE_BOX,32,32);
Теперь нужно разобрать аргументы функции: Первый и второй это координаты объекта, третий - плотность (ноль это статичный), четвёртый это форма объекта. В нашем случае это куб и следующие два аргумента его длинна и ширина. Так же можно использовать другие константы: SHAPE_SPHERE который делает форму круга и тогда аргумент пять это радиус. С этим объектом закончили перейдём к динамичному. В событие его создания пишем почти тот же код:
Code
h = create_body(x,y,1,SHAPE_BOX,32,32);
И в событие шага:
Code
object_update(h);
Который заставляет его двигаться. Расставляем объекты в комнате и тестируем. Если всё хорошо идём дальше. Теперь создадим из динамичного куба героя для платформера. Для этого внесём изменения в код нашего динамичного ящика. В событие шага следует дописать такой код:
Code
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); }
Вот и всё, передвижение героя по миру готово! Если будут вопросы, спрашивайте, не стесняйтесь. Прим. Если выбивает ошибку то сделайте объект o_control постоянным, в событие Game Start этого объекта перетащите кнопку "перейти в следующую комнату". Создайте ещё одну комнату, которая будет находится впереди игровой и поставьте туда o_control. Из игровой комнаты его удалите. Пустой проект. Готовый проект. Просто на сайте пока малая посещаемость, а этот урок думаю будет полезен многим.
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Использование GMPhysics.», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Да, извиняюсь. Правильно так: Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком быстро то уменьшите.