Pregunta

He buscado un motor de física que funcione bien con Android, pero solo me ha decepcionado.

En términos de rendimiento, había escuchado que jbox2d era la mejor apuesta, pero (según tengo entendido) desde Android SDK V1.0, el verificador de Dalvik VM se ha vuelto muy estricto y rechaza algunas de las clases clave y se niega a correr. Este problema persiste después de usar la herramienta dx (aunque podría estar usando la herramienta de manera incorrecta).

Sé que el proyecto de portabilidad de AndroidBox2D existe para optimizar jbox2d para el recolector de basura de Android, pero la página del proyecto no tiene ninguna descarga y la licencia gpl no es tan atractiva como la licencia zlib del original.

¿Alguien tiene algún consejo para hacer que jbox2d funcione en Eclipse, o tiene alguna recomendación sobre dónde debería comenzar a buscar?

¿Fue útil?

Solución

No sé por qué Dalvik rechazaría las clases a menos que estuvieran ofuscadas con alguna herramienta. ¿Intentaste recompilar Box2d desde la fuente?

La única otra biblioteca de Java que he visto es http://www.cokeandcode.com/phys2d/

Otros consejos

Estoy obteniendo buenos resultados con la versión Java de APE usando matemáticas de punto fijo en lugar de flotantes.

http://www.cove.org/ape/

He realizado una implementación del motor APE ahora usando (en su mayoría) matemática de punto fijo y es sin recolección de basura. Es un motor bastante agradable para hacer cosas con restricciones, pero parece menos adecuado para cuerpos realmente rígidos.

http://code.google.com/p/ape- physics-for-android /

También puede buscar en el puerto NDK de Chipmunk (enlace de descarga en la página de youtube)

http://www.youtube.com/watch?v=_i_GFjfmLTc

También busque @ Glaze, que está optimizado para matrices ... podría no ser un puerto horrible para Java desde AS3 (también fue portado a Haxe)

http://code.google.com/p/glaze/

No estoy seguro, si jBox2D es realmente adecuado para teléfonos inteligentes. Prefiero mirar los motores J2ME, ya que están altamente optimizados para el rendimiento, por ejemplo: http://emini.at

Además, no debería tener problemas con la integración.

Libgdx tiene JBox2D integrado y es multiplataforma (Android, Java Desktop, GWT Web) como Unity, aunque es gratis y código abierto .

Lo configuré en 15 minutos y estaba creando cuerpos de física en muy poco tiempo. El manual de física de Libgdx ayuda desde allí. ¡Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top