Programación Específica > Programación de Videojuegos
Administracion De Colisiones
JuanK:
tienes toda la razon habia olvidado ese detalle, de hecho ya no estoy seguro si FMC lo hace asi como dices o si revisa todos los objetos. Hasta donde recuerdo solo revisa los objetos que se encuentran en el area visible de la pantalla los demas los omite, para ello creo que usamos un atributo que indicaba si el objeto era o no visible en un momento determinado.
bob esponja:
la idea de amilius esta muy buena.
sobre lo que yo planteo los beneficios que encuentro son:
no tenes que plantear en cada objeto suceptible a ser colisionado la logica de deteccion de colisiones sino en un lugar central, cada objeto 'colisionable' solo deberia tener la logica de que hacer cuando colisione.
En cuanto a evitar controles innecesarios, y sin tener en cuenta el enfoque de amilius, si un metodo chequea las colisiones de todos los que contiene en una lista se pueden evitar controles innecesarios.
por ejemplo cuatro objetos A B C y D.
los tengo en la lista.
chequeo su A colisiona con B, C o D.
cheque si B colisiona con C o D ( ya que A colision B es igual a B colision A )
chequeo si C colisiona con D.
y listo 6 controles.
en cambio si cada elemento tuviera una lista de los otros seria 4 ( objetos ) x 3 ( elementos en su lista ) = 12 ( controles ).
imaginense para numeros mayores por ejemplo 100 :o
y si se le agrega el control con zonas ( que seria especifico para cierto tipo de juegos y no se si generalizable o util a todos ) esto seria una mejora de eficiencia importante.
Amilius:
La idea principal es eliminar cualquier verificacion por minima que sea, de todos modos todos los juegos por lo menos tendrian dos zonas: la activa y la no activa para el jugador.
PENTEX:
Para el problema del acoplamiento mencionado al principio puedes usar un patron tipo "concentrador". En cuanto a lo de la reduccion de calculo de colisiones, las soluciones propuestas son similares a los planteamientos básicos de BSP y portales.
Camilo.
Grupo PENTEX
Navegación
[*] Página Anterior
Ir a la versión completa