




Какую платформу вы ищете? Какую библиотеку вы будете использовать, будет зависеть от этого.
Для фреймворка XNA Farseer очень хорош.
Похоже, Бурундук может удовлетворить ваши потребности.
Вы можете посмотреть на двигатель Havok. Я считаю, что они выпустили бесплатную версию для некоммерческого использования. Для него есть набор ограничений, который позволит вам ограничить физику двумя плоскостями, в вашем случае x и y.
Физика в большинстве 2D-платформеров с боковой прокруткой настолько проста, что вы легко можете реализовать их самостоятельно. Какие эффекты вы ищете?
в основном много динамичных прыжков и отскоков
Если бы у вас было время, вы могли бы использовать PhysX, но это, вероятно, чрезмерное убийство для 2D. Кроме того, если вы планируете, чтобы ваша игра работала на ПК и хотите немного крутой физики, попробуйте поискать в Google "верлетную интеграцию". Я знаю, что существует довольно много реализаций верлета (хорошо для частиц и 2D тряпичных кукол).
Я использовал Box2D в личных проектах. Это API-интерфейс для 2D-моделирования физики. Но это может быть излишним, если вам нужен больше игровой / графический API.
Скорее всего, ваш лучший вариант - Box2D. Он выполняет 2D-физику, имеет множество опций и очень легко интегрируется в существующий проект. По умолчанию он выполняет CCD для неподвижных тел, но любое твердое тело может быть выборочно включено в расчет CCD.
Если все, что вам нужно, это гравитация, вы можете запрограммировать ее самостоятельно за 5 минут. Свободно падающие объекты ускоряются вниз со скоростью 9,8 метра в секунду в секунду, то есть скорость объекта при движении вниз увеличивается на 9,8 метра в секунду при свободном падении. Для игры вы захотите разделить эти 9,8 на любую частоту кадров. Для прыжка просто выберите значительную отрицательную вертикальную скорость, примените ее к персонажу в тот момент, когда он прыгает, и уменьшите ее на ваше покадровое приращение силы тяжести. Это действительно все, что вам нужно для чего-то вроде Марио, если только вы не ищете трехмерный фон для своего двухмерного бокового скроллера.
Если вы хотите стать более привлекательным, вы можете попытаться принять во внимание силу удара объекта, заставляя падающие объекты причинять людям боль, треснуть тротуар или что-то в этом роде. Для этого используйте формулу кинетической энергии: KE = 1/2 * M * V ^ 2, где M - масса, а V - скорость.
Этот парень много работал с играми на Javascript:
Вы также можете делать 2D-физику с Opende
Чтобы ответить на вторую часть вашего вопроса, если вы хотите понять, как работает простой 2D-платформер, прочтите уроки для N. Да, N - это игра на основе флэш-памяти, но это не значит, что она построена не как «настоящая» игра, поэтому руководства по обнаружению столкновений (и реагированию) очень применимы. Их легко читать с некоторыми интуитивно понятными демонстрациями, встроенными в страницу, чтобы продемонстрировать геометрические концепции.
Вы правы, такие библиотеки, как box2d, chipmunk, великолепны, но их реализация и привыкание требуют много времени. Поскольку я вынужден закончить разработку к 28-му числу, мне нужно снизить некоторые сложности игры, например возможность неровной местности, и перейти к более простым универсально применимым методам, а не к
наконец-то я сделал игру под названием nincompoop, она должна была быть закончена к 30 сентября, поэтому не стал вносить последние штрихи - попробуйте здесь bidworkz.com/hfn/nincompoop_shaastra.zip
я ищу комбинацию allegro + GCC