2D 游戏物理?

问题描述 投票:0回答:11

任何人都可以向我指出一个 2D 游戏物理库,用于对 2D 平台/横向卷轴游戏的重力、跳跃动作等进行编程吗?

或者你能推荐一些横向卷轴的算法吗,比如马里奥、索尼克等?

c++ physics
11个回答
22
投票

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


12
投票

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


9
投票

如果您只需要重力,您可以在 5 分钟内自行编程。自由落体物体以每秒 9.8 米的速度加速下降 - 也就是说,物体自由落体的向下速度增加每秒 9.8 米。对于游戏,您需要将 9.8 除以您的帧速率。对于跳跃,只需选择一个显着的负垂直速度,在角色跳跃时将其应用到角色,并按每帧重力增量递减它。对于像 Mario 这样的游戏,这确实是您所需要的一切,除非您正在为 2d 横向卷轴寻找 3d 背景。

如果你想更进一步,你可以尝试考虑物体的冲击力,让物体掉落伤人或者路面破裂之类的。为此,请使用动能公式:KE = 1/2 * M * V^2,其中 M 是质量,V 是速度。


5
投票

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

对于 XNA 框架,Farseer 相当不错。


4
投票

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


2
投票

你可以看看 Havok 引擎。我相信他们发布了一个用于非商业用途的免费版本。它有一个约束套件,可以让您将物理约束到 2 个平面,在您的情况下是 x 和 y。


2
投票

大多数 2D 横向卷轴平台游戏的物理原理非常简单,您可以轻松地自己实现。您想要什么样的效果?


2
投票

如果您有时间,您可以使用 PhysX,但它对于 2D 来说可能有点过头了。 除此之外,如果你打算让你的游戏在 PC 上运行并想要一些很酷的物理效果,请尝试在谷歌上搜索“verlet 集成”,我知道周围有很多 verlet 实现(对于粒子和 2D 布娃娃来说很好)。


2
投票

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


2
投票

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

http://blog.nihilogic.dk/


2
投票

您也可以使用 opende 进行 2d 物理计算

© www.soinside.com 2019 - 2024. All rights reserved.