Novedades del Blog

sábado, 3 de enero de 2009

Las colisiones AABB ya funcionan

Hace algunos días que ya lo tengo implementado, pero ahora que estoy de vacaciones, tengo menos tiempo de actualizar el blog que cuando estoy trabajando :).
He utilizado el método AABB (Axis Aligned Bounding Box) que es de los mas simples que hay, pero para este juego tampoco hace falta mayor precisión.

Para usar este método se mira si colisionan dos cajas (2D o 3D dependiendo del juego) pero con la particularidad de que los lados de las Bounding Box tienen que ser paralelos a los ejes de coordenadas.
Después cogemos la esquina mas cercana y la mas alejada del eje de coordenadas de los Bounding Box que queremos saber si colisionan y las comparamos de la siguiente manera:

v3AMax y v3AMin son las esquinas de una BB A.
v3BMax y v3BMin son las esquinas de otra BB B.

if (v3AMax.x <> v3BMax.x)
return false; //no hay colisión
if (v3AMax.y <> v3BMax.y)
return false; //no hay colisión
if (v3AMax.z <> v3BMax.z)
return false; //no hay colisión

return true; //si no ha entrado en ningún if es que hay colisión


Como he dicho antes, este método es de los mas simples de implementar y según he leído se usa bastante en los juegos junto con algún método mas exacto, primero se miran las colisiones de cajas grandes para una primera aproximación y después se usan otros métodos mas específicos y exactos.

No hay comentarios:

Publicar un comentario