2D游戏物理?

时间:2008-09-19 01:26:23

标签: c++ physics

任何人都可以指点我的二维游戏物理等图书馆,为二维平台/侧面游戏编程引力,跳跃动作等吗? 或者你能为马里奥,声波等侧卷轴提出一些算法吗?

11 个答案:

答案 0 :(得分:22)

听起来Chipmunk可能会满足您的需求。

答案 1 :(得分:12)

最好的选择是Box2D。它具有2D物理功能,有很多选项,并且很容易集成到现有项目中。固定物体默认为CCD,但任何刚体都可以选择性地包含在CCD计算中。

答案 2 :(得分:9)

如果你需要的只是重力,你可以在5分钟内自己编程。自由落体物体以每秒9.8米/秒的速度加速下降 - 也就是说,物体的向下速度每秒自由落体增加9.8米。对于游戏,无论你的帧速率如何,你都希望将其除以9.8。对于跳跃,只需选择一个显着的负垂直速度,在它们跳跃的瞬间将其应用于角色,并按每帧重力增量递减。对于像Mario这样的东西,你真的需要它,除非你正在寻找你的2D侧卷轴的3d背景。

如果你想变得更加漂亮,你可以尝试将物体的冲击力考虑在内,使坠落的物体伤害人或破坏路面或其他东西。为此,使用动能公式:KE = 1/2 * M * V ^ 2,其中M是质量,V是速度。

答案 3 :(得分:5)

您在寻找什么平台? 您使用的库将取决于此。

对于XNA框架,Farseer非常好。

答案 4 :(得分:4)

要回答问题的第二部分,如果您想了解一个简单的2D平台游戏是如何工作的,请阅读tutorials for N。是的,N是基于闪存的游戏,但这并不意味着它不像“真实”游戏那样构建,因此碰撞检测(和响应)教程非常适用。它们是一个简单的阅读,在页面中嵌入了一些直观的演示,以展示几何概念。

答案 5 :(得分:2)

你可以看看Havok引擎。我相信他们发布了非商业用途的免费版本。有一个约束工具包,它允许您将物理学约束为2个平面,在您的情况下,x和y。

答案 6 :(得分:2)

大多数2D侧滚动平台游戏中的物理特性非常简单,您可以自己轻松实现它们。你在寻找什么样的效果?

答案 7 :(得分:2)

如果你有时间可以使用PhysX,但它可能会过度杀死2D。 除此之外,如果你打算让你的游戏在PC上工作并想要一些很酷的物理,那就试着用谷歌搜索“verlet整合”我知道有很多verlet实现(很适合粒子和2D rag-dolls)。

答案 8 :(得分:2)

我在个人项目中使用了Box2D。它是2D物理模拟API。但是,如果您想要的更像是游戏/图形API,那可能会有点过分。

答案 9 :(得分:2)

这家伙在Javascript游戏方面做了很多工作:

http://blog.nihilogic.dk/

答案 10 :(得分:2)

您也可以使用opende进行二维物理