
Para conseguir esto pensé varias opciones:
La primera opción (fue la que use en la versión C++ hace 2 años) era crear un cubo dentro del bounding box llamado 'área no colisionable', en el cual, como su nombre indica, no colisionaría otra Entidad. El proceso seria mirar si se colisiona con el Bounding Box y en caso afirmativo, mirar que no se colisione con ese área dentro del Bounding Box. Para las puertas era suficiente pero no me acababa de convencer.

La segunda opción (la que he implementado ahora) es crear varios Bounding Box dentro del Bounding Box genérico que contiene toda la entidad. Primero hago las comparaciones con los Bounding Box genéricos y si se produce alguna colisión (Colision) , miro uno a uno sus Bounding Box de dentro (Subcolisión), lo que me permite hacer el hueco de la puerta y mas precisión en las colisiones.
Estos Bounding Box se especifican en el fichero de configuracion de la malla, mediante coordenadas y mediante el ancho, alto y profundidad de cada uno de ellos.
No hay comentarios:
Publicar un comentario