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


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

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

Использование GMPhysics.
Использование 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);
}

Давайте разберём функции:
Code
set_body_hspeed(id,hspeed) - устанавливает горизонтальную скорость.
set_body_vspeed(id,vspeed) - устанавливает вертикальную скорость.

Вот и всё, передвижение героя по миру готово! Если будут вопросы, спрашивайте, не стесняйтесь.
Прим. Если выбивает ошибку то сделайте объект o_control постоянным, в событие Game Start этого объекта перетащите кнопку "перейти в следующую комнату". Создайте ещё одну комнату, которая будет находится впереди игровой и поставьте туда o_control. Из игровой комнаты его удалите.
Пустой проект.
Готовый проект.
Просто на сайте пока малая посещаемость, а этот урок думаю будет полезен многим.

Источник: КЛИК»
Категория: Создание игр | Добавил: stalker5889 (25.12.2011) | Автор: stalker5889
Просмотров: 1066 | Рейтинг: 4.2/6
Теги: Платформер, Подключение физики, GMPhysics, Использование физики, физика в играх, Physics, Физика, Game Maker, GML, Физическая библиотека
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Использование GMPhysics.», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемой ниже кнопкой:
Всего комментариев: 4
0  
3 DeNova   (21.01.2012 22:42)
Quote
Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком медленно то уменьшите.

это ошибка ? wink

0  
4 stalker5889   (22.01.2012 09:02)
Да, извиняюсь. Правильно так:
Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком быстро то уменьшите.

0  
2 TLT   (30.12.2011 01:49)
Пробовал с GM либу GMODE - мне понравилась.

+1  
1 AGENTX001   (28.12.2011 01:15)
Норм

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
Aether3D
Novashell
GameDirector
FIFE
Frank Engine
Odamex
Crystal Space
AGK
SpriteCraft
Byond
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг