Суббота, 27 Апреля 2024, 01:59

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

Меню сайта
Категории каталога
Создание игр [355]
Статьи об общих понятиях связанных с созданием игр.
Программирование [82]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [145]
Статьи о программах для создания игр, уроки и описания.
Софт [43]
Различные программы, в том числе в помощь игроделам.
2D-графика [14]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [16]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [5]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [161]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [129]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Кто вы?
Всего ответов: 24684
Главная » Статьи » Создание игр

Использование 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 Декабря 2011) | Автор: stalker5889
Просмотров: 6877 | Комментарии: 4 | Рейтинг: 3.7/7 |
Теги: платформер, Подключение физики, GMPhysics, Использование физики, физика в играх, Physics, физика, Game Maker, GML, Физическая библиотека
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Использование GMPhysics.», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 4
+0-
3 DeNova   (21 Января 2012 22:42) [Материал]
DeNova
Quote
Прим. Если объекты движутся слишком медленно то увеличите эту переменную, а если они будут исчезать или двигаться слишком медленно то уменьшите.

это ошибка ? wink

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

+0-
2 TLT   (30 Декабря 2011 01:49) [Материал]
TLTПробовал с GM либу GMODE - мне понравилась.

+1-
1 AGENTX001   (28 Декабря 2011 01:15) [Материал]
AGENTX001Норм

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Kodu
  • BlitzMax
  • GLHeretic
  • Spartan
  • DevelNext
  • Glint 3d
  • NetGore
  • FOnline
  • Graphic Adventure Assembler for C64
  • Quake II
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    Все права сохранены. GcUp.ru © 2008-2024 Рейтинг