2d игровая физика?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
12
0
15 688
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

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

Для фреймворка XNA Farseer очень хорош.

я ищу комбинацию allegro + GCC

Abhishek Mishra 22.09.2008 17:31
Ответ принят как подходящий

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

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

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

в основном много динамичных прыжков и отскоков

Abhishek Mishra 19.09.2008 05:34

Если бы у вас было время, вы могли бы использовать 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:

http://blog.nihilogic.dk/

Вы также можете делать 2D-физику с Opende

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

Вы правы, такие библиотеки, как box2d, chipmunk, великолепны, но их реализация и привыкание требуют много времени. Поскольку я вынужден закончить разработку к 28-му числу, мне нужно снизить некоторые сложности игры, например возможность неровной местности, и перейти к более простым универсально применимым методам, а не к

Abhishek Mishra 22.09.2008 10:07

наконец-то я сделал игру под названием nincompoop, она должна была быть закончена к 30 сентября, поэтому не стал вносить последние штрихи - попробуйте здесь bidworkz.com/hfn/nincompoop_shaastra.zip

Abhishek Mishra 08.10.2008 15:40

Другие вопросы по теме