首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JBox2D和libGDX Box2D有什么区别?

JBox2D和libGDX Box2D有什么区别?
EN

Stack Overflow用户
提问于 2015-08-12 00:10:05
回答 1查看 3.3K关注 0票数 4

我在libGDX上工作,在我的游戏中使用Box2D进行简单的二维物理交互。然而,最近我发现了一个名为JBox2D的库的存在。

这两个库有什么区别吗?彼此之间有什么好处?

我知道它们都是基于Box2D c++库的,因为:

libgdx中的Box2D实现是围绕C++引擎的一个瘦Java包装器。

JBox2d是C++物理引擎LiquidFun和Box2d的Java端口。

但是,港口和包装是什么意思呢?JBox2D比Box2D更完整吗?哪个更快?

我之所以问这个问题,是因为我想知道,将我的项目从一个更改到另一个(在本例中从Box2D更改为JBox2D)是否会影响或优化我的游戏性能。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-12 16:31:49

正如MadProgrammer所说,libgdx box2d扩展(gdx-box2d)是本机box2d库的JNI包装器。虽然JBox2D库是完全用Java编写的端口,而不依赖于本机库。但是,当无法包装本机库时,您可能会发现在幕后了解gdx-box2d扩展使用JBox2d。很有趣。这只是GWT后端的情况。

在大多数情况下(特别是Android),使用JNI包装器比使用JBox2d更快(在iOS上也可能更快,因为RoboVM需要翻译JBox2D字节码)。这就是为什么扩展在这些后端上使用的原因。当然,这取决于实际的场景,所以您应该对其进行基准测试并进行比较,以了解实际的差异。

我自己还没有把gdx-box2d和JBox2d放在一起。但我可以说,(3D物理)gdx-子弹JNI包装比JBullet端口快得多。

请注意,gdx-box2d包含所需的库。它不依赖于平台上需要更新的任何库。您也不需要担心是否安装了正确的库。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31954012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档