我一直在寻找能够很好地与Android配合使用的物理引擎,但我只是感到很失望。
在性能方面,我听说jbox2d是最好的选择,但是(从我的理解)自从Android SDK V1.0以来,Dalvik VM的验证程序变得非常严格并且拒绝了一些关键类并且拒绝运行。使用dx工具后,此问题仍然存在(尽管我可能不正确地使用该工具)。
我知道AndroidBox2D移植项目的存在是为了优化Android垃圾收集器的jbox2d,但项目页面没有任何下载,gpl许可证没有原始版本的zlib许可证那么吸引人。
有没有人有任何提示让jbox2d在Eclipse中工作,或者有任何建议我应该从哪里开始寻找?
我不知道为什么Dalvik会拒绝课程,除非他们使用某种工具进行混淆。你有没有尝试从源代码重新编译Box2d?
我见过的唯一其他Java库是http://www.cokeandcode.com/phys2d/
使用固定点数学而不是浮点数,使用Java版本的APE获得了良好的结果。
我已经完成了APE引擎的实现,现在使用(主要是)定点数学,并且它没有垃圾收集。它是一个非常好的引擎来做限制的东西,但似乎不适合真正的刚体。
http://code.google.com/p/ape-physics-for-android/
您还可以查看Chipmunk的NDK端口(在youtube页面上的下载链接)
另外看@Glaze是针对数组优化的..可能不是AS3的Java端口(它也被移植到Haxe)
我不确定,如果jBox2D真的适合智能手机。我更愿意看看J2ME引擎,因为它们针对性能进行了高度优化 - 例如:http://emini.at
此外,您应该没有集成问题。
Libgdx内置了JBox2D,是Unity的跨平台(Android,Java Desktop,GWT Web),它是免费的和open source。
我在15分钟内完成了它,并立即创建了物理机构。 Libgdx physics manual从那里帮助。祝好运!