2008-09-19 4 views
12

Может ли кто-нибудь указать мне на библиотеку для физики 2D-игр и т. Д. Для программирования гравитации, прыгающих действий и т. Д. Для игры 2d platform/sidescrolling? Или вы могли бы предложить некоторые алгоритмы для боковой скроллера, такие как mario, sonic и т. Д.?2d физика игры?

ответ

22

Похоже, Chipmunk может удовлетворить ваши потребности.

+0

О, это круто. – 2008-09-19 01:41:51

5

На какой платформе вы ищете? Какая библиотека, которую вы используете, будет зависеть от этого.

Для рамки XNA, Farseer довольно приятно.

+0

Я ищу аллегро + GCC комбо – 2008-09-22 13:31:04

2

Вы можете посмотреть двигатель Havok. Я считаю, что они выпустили бесплатную версию для некоммерческого использования. Для этого есть набор ограничений, который позволит вам ограничить физику двумя плоскостями, в вашем случае x и y.

2

Физика в большинстве 2D-игровых платформ с прокруткой настолько проста, что вы можете легко реализовать их самостоятельно. Какие эффекты вы ищете?

+0

в основном много динамических прыжков и отскоков – 2008-09-19 01:34:56

2

Если у вас есть время, вы можете использовать PhysX, но, скорее всего, это более чем убить для 2D. Кроме того, если вы планируете, чтобы ваша игра работала на ПК и нужна какая-то классная физика, попробуйте googling для «вербальной интеграции». Я знаю, что вокруг довольно много верлетных реализаций (хороших для частиц и двумерных кукол-тряпок).

2

Я использовал Box2D в личных проектах. Это 2D-физический имитационный API. Но, может быть, излишнее, если вы хотите больше игровой/графический API.

12

Ваш лучший выбор наиболее вероятно Box2D. Он выполняет 2D-физику, имеет множество опций и очень легко интегрируется в существующий проект. По умолчанию это CCD для фиксированных тел, но любое твердое тело может быть выборочно включено в расчет CCD.

+0

я просто люблю бурундук и box2D спасибо! – 2008-09-19 20:12:07

9

Если вам нужна гравитация, вы можете запрограммировать это самостоятельно через 5 минут. Свободно падающие объекты ускоряются со скоростью 9,8 метров в секунду в секунду, то есть скорость объекта скорость увеличивается на 9,8 метра в секунду свободного падения. Для игры вы захотите разделить это 9.8 на любую вашу частоту кадров. Для прыжков, просто выберите значительную отрицательную вертикальную скорость, примените это к персонажу в тот момент, когда они прыгнут, и уменьшите его с помощью приращения силы тяжести в каждом кадре. Это действительно все, что вам нужно для чего-то вроде Марио, если только вы не ищете трехмерный фон для вашего 2d-скроллера.

Если вы хотите стать более привлекательным, вы можете попытаться принять во внимание силу удара объекта, сделав падающие предметы обидой людей или трещинами или чем-то еще. Для этого воспользуемся формулой для кинетической энергии: KE = 1/2 * M * V^2, где M - масса, а V - скорость.

4

Чтобы ответить на вторую часть вашего вопроса, если вы хотите чтобы получить представление о том, как работает простой 2D-платформер, прочитайте сообщение tutorials for N. Да, N - игра на основе флеш-игры, но это не значит, что она не построена как «настоящая» игра, поэтому учения по обнаружению столкновений (и ответы) очень применимы. Они просты в чтении с некоторыми интуитивными демонстрациями, встроенными в страницу, чтобы показать геометрические концепции.

+0

Вы правы, libs like box2d, chipmunk великолепны, но требуется много времени, чтобы внедрить и привыкнуть. Поскольку мне приходится заканчивать разработку до 28-го числа, мне нужно уменьшить сложность игры, например, возможность неравномерного рельефа и получить более простые универсальные методы, а не – 2008-09-22 06:07:21

Смежные вопросы