2010-05-05 19 views
5

he integrado en mi Box2D motor, (depuración Draw, etc.) y con un mundo que puedo lanzar en algunos cuadrados/rectángulos 2d etc.¿Solamente está integrando la detección de colisiones Box2D en mi motor 2d?

vi this posterior, donde el usuario es, básicamente, no usando un mundo para la detección de colisión, sin embargo, el usuario no explica nada acerca de cómo se está utilizando el colector (b2Manifold), etc.

Another post, es en el foro cocos2d, (desplazarse hacia abajo a la Lam usuario en la tercera respuesta)

¿Alguien podría ayudarme un poco con esto ?, básicamente quiero agregar detección de colisión sin la necesidad de usar b2World, etc. etc.

¡Muchas gracias!

Respuesta

2

El código en ambas publicaciones me parece completo. Empiezas con dos formas de polígono y sus correspondientes transformadas y desde b2CollidePolygons recuperas un colector de contacto.

El b2Manifold es solo una colección de puntos en los que se cruzan los límites de las dos formas. En el código publicado, el autor usa eso si el recuento de puntos del colector es mayor que cero, hay una superposición. Dependiendo de la naturaleza de las formas, puede haber diferentes puntos de intersección cuando se superponen.

Tenga en cuenta que el manejo de colisiones del b2World es bastante robusto. Más allá de simples consultas de colisión, tiene eliminación de fase amplia, fundición de rayos, un árbol espacial, eventos de contacto de inicio y contacto final, administración de memoria eficiente para nombrar algunas cosas. Hay clases en la API para la mayoría de estas tareas, pero no puedo decir que esté familiarizado con su uso manual. Puede que valga una mirada.

Cuestiones relacionadas