2009-06-23 11 views
20

He buscado un motor de física que funcione bien con Android, pero solo me ha decepcionado.¿Hay algún motor de física decente para Android?

En términos de rendimiento, escuché que jbox2d era la mejor opción, pero (desde mi entendimiento) desde el SDK V1.0 de Android, el verificador de Dalvik VM se ha vuelto muy estricto y rechaza algunas de las clases clave y se niega correr. Este problema persiste después de usar la herramienta dx (aunque podría estar usando la herramienta incorrectamente).

Sé que existe el proyecto de portabilidad AndroidBox2D para optimizar jbox2d para el recolector de basura 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 alguna sugerencia para hacer que jbox2d funcione en Eclipse, o tiene alguna recomendación sobre dónde debería empezar a buscar?

+0

Ahora que el NDK está fuera, esta abox2d (versión Android NDK de Box2D) era increíblemente fácil de conseguir de trabajo: http://groups.google.com/group/android-ndk/browse_thread/thread/10f2e02c5d6857cb?pli = 1 Pero tenga en cuenta que debe agregar algunos encabezados al desarrollar en Linux – Marc

+2

. Desde que hice esta pregunta, And Engine ha avanzado mucho. Es posible que desee verificarlo aquí: http://code.google.com/p/andengine/ – Marc

+0

Votación para cerrar como herramienta rec. –

Respuesta

3

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

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

+0

Según lo que he reunido en los foros, Dalvik está rechazando las clases debido a las restricciones de seguridad tipo. Y sí, compilar desde la fuente da lo mismo. Pero parece que Box2d funciona (hasta ahora ejecuta el más elástico sin renderización, al menos). Gracias – Marc

1

también se ven @ esmalte que está optimizado para las matrices .. podría no ser un puerto horrible para Java desde AS3 (que fue portado a haXe también)

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

0

No estoy seguro, si jBox2D es realmente adecuado para teléfonos inteligentes. Preferiría ver 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.

+0

J2ME no funcionará de manera predeterminada, pero podría ser portátil ... –

2

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

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

2

me han hecho una implementación del motor de APE ahora usando aritmética de punto (en su mayoría) fijo y está sin recolección de basura. Es un motor bastante bueno para hacer cosas con restricciones pero parece menos adecuado para cuerpos realmente rígidos.

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

Usted también podría buscar en el puerto NDK del Chipmunk (enlace de descarga en la página de youtube)

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

0

Libgdx ha JBox2D incorporado y es multiplataforma (Android, Java Desktop, GWT Web) como Unity, aunque es gratis y open source.

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

Cuestiones relacionadas