Ale*_*tes 3 java jbox2d libgdx
我正在研究libGDX,并在我的游戏中使用Box2D进行简单的2D物理交互.但是,最近我发现存在一个名为JBox2D的库.
这两个图书馆有什么区别吗?彼此之间的优势是什么?
我知道它们都基于用于c ++ 的Box2D库,因为:
libgdx中的Box2D实现是围绕C++引擎的瘦Java包装器.
JBox2d是C++物理引擎LiquidFun和Box2d的Java端口.
但是,他们的意思是端口和包装?JBox2D比Box2D更完整吗?哪一个更快?
我问这个是因为我想知道将我的项目从一个改为另一个(在这种情况下从Box2D到JBox2D)可以影响或优化我的游戏性能.
正如MadProgrammer所说,libgdx box2d扩展(gdx-box2d)是一个围绕本机box2d库的JNI包装器.虽然JBox2D库是完全用Java编写的端口,但不依赖于本机库.但是,您可能会发现有趣的是,当无法包装本机库时,gdx-box2d扩展在后台使用JBox2d.这只是GWT后端的情况.
在大多数情况下(特别是Android),使用JNI包装器而不是JBox2d更快(在iOS上它可能也更快,因为RoboVM需要转换JBox2D字节码).这就是扩展使用那些后端的原因.当然这取决于实际情况,因此您应该对它进行基准测试并比较它知道实际差异.
我自己没有替补标记gdx-box2d和JBox2d.但我可以从经验中说,与JBullet Java端口相比,(3D物理)gdx-bullet JNI包装器要快得多.
请注意,gdx-box2d包含所需的库.它不依赖于平台上需要更新的任何库.您也不必担心确保安装了正确的库.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |