Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 花栗鼠物理或Box2D用于C++;2D游戏引擎?_C++_Iphone_Physics_Game Engine - Fatal编程技术网

C++ 花栗鼠物理或Box2D用于C++;2D游戏引擎?

C++ 花栗鼠物理或Box2D用于C++;2D游戏引擎?,c++,iphone,physics,game-engine,C++,Iphone,Physics,Game Engine,我正在开发一个“跨平台”2D游戏引擎,我最初的平台目标是iPhone操作系统,但可能会转向Android,甚至是PSP、任天堂DS等游戏机,我想保留我的选择余地 我的引擎是用C++开发的,并且已经阅读了很多关于Box 2D和花栗鼠的文章,但是我仍然不能决定用哪一个作为我的物理中间件。 花栗鼠似乎很容易嵌入,而Box2D似乎被广泛使用。 花栗鼠是C,Box 2D是C++,但是我听说Box 2D的API比花栗鼠的API更差。 现在,我将使用引擎形状创建和不规则多边形(非凹面)的碰撞检测功能 我认为:

我正在开发一个“跨平台”2D游戏引擎,我最初的平台目标是iPhone操作系统,但可能会转向Android,甚至是PSP、任天堂DS等游戏机,我想保留我的选择余地

我的引擎是用C++开发的,并且已经阅读了很多关于Box 2D和花栗鼠的文章,但是我仍然不能决定用哪一个作为我的物理中间件。 花栗鼠似乎很容易嵌入,而Box2D似乎被广泛使用。 花栗鼠是C,Box 2D是C++,但是我听说Box 2D的API比花栗鼠的API更差。 现在,我将使用引擎形状创建和不规则多边形(非凹面)的碰撞检测功能

我认为:

1) Good API's
2) Easy to integrate.
3) Portability.
当然,如果你注意到其他任何事情,我很乐意听到

你认为哪一个更适合我的需要


编辑:我最后写了一篇关于我的特别选择的文章,你可以找到它

你是对的,花栗鼠已经被开发出来,改善了Box2D坠落的许多地方


然而,Box2D肯定是一个更成熟的平台,根据我个人在决定使用哪种引擎时的经验,我发现Box2D拥有更多的社区追随者,因此通过示例更容易学习。

我两者都使用,但当我可以选择时,我选择了花栗鼠,它有更好的API,而且更容易学

但那是因为我不需要社区就学会了,手册非常好

更新:我目前的游戏使用的是Box2D,我希望我用的是花栗鼠。。。主要是因为Box2D有两个严重的问题,这在我的游戏中加剧了:首先,它有一个非常老的错误,物体在角落“卡住”,我的游戏是一个突破游戏,所以当球沿着墙“滚动”时,有时它会卡住并被扔离墙,很多人问为什么我的游戏物理看起来“随机”

Box2D的另一个问题是,它如何存储对象,花栗鼠使用空间散列,而Box2D使用二叉树,我的游戏在很多对象的级别上速度大幅下降,我问Erin(Box2D的作者)原因,他解释说,因为Box2D使用二叉树,如果你将对象放置在网格中(就像我说的,我的游戏是一个突破克隆!所有东西都在一个网格中!)树变得不平衡,Box2D变慢。我游戏的解决方案是将一些关卡变成“棋盘”模式以避免这个问题


对于所有基于瓦片的游戏,我只会使用花栗鼠,Box 2D确实不适合那些(因为在墙角角落的“SnAG”,和瓦片网格的减速错误)

< P> Chimunk是直C,而Bx2D是C++。Chipmunk也有一套新的,但是它们不能免费使用。 据我所知,花栗鼠不支持连续碰撞检测,但Box2D支持。这对于防止“隧道”很重要(高速移动时,物体彼此轻微穿过)

P>最后,从我听到的,它们都很棒。如果你喜欢C++到C或者需要连续的碰撞检测,你可能应该选择Box 2D.< 如果您更愿意使用纯C库,请使用Chipmunk

我个人使用Box2D,到目前为止,我的体验非常棒


另外,我认为Box 2D有一个不同的(可能更大的)联合类型集合,所以可以考虑……实际上我认为不需要一个社区是很好的,我今天从BOX2D开始…我将评估我自己,并且坚持我找到的最好的一个:-谢谢你的评论!我从个人经验中发现,花栗鼠有点“古怪”。为了让事情变得正确,我需要进行大量的修改和调整。当然,如果我去Box2D,也可能会发生同样的情况。如果你的最终产品完成了,我会有兴趣看一看吗?投票结束,因为太宽/工具记录。@Goles我无法访问该网站。