Comunidad de diseño web y desarrollo en internet online

Problema de recursividad

Citar            
MensajeEscrito el 21 Jul 2007 08:50 pm
Bien, me propuse crear un sistema de pathfinding para videojuegos y llegué a la conclusión de que la forma más simple y práctica es usar waypoints.

Entonces, ubico unos MCs en la película, una función los reconoce como waypoints y los almacena en un Array. Incluso, con el fin de reducir el tiempo de ejecución, precalcula para cada waypoint los distintos waypoints que puede ver (es decir, a los que podría ir ya que no hay paredes interponiéndose) y los almacena en un Array dentro del mismo waypoint.

Hasta ahora, todo funciona. Lo que hice luego fue crear unos MCs que recorren la pantalla llendo de un lugar a otro atravesando los susodichos waypoints.

Eso también funciona, pero el problema es que no logro hacer la función que encuentra el camino de un punto a otro recursiva. Es decir, la función busca un camino directo, si no existe, busca un camino atravesando sólo un waypoint, luego para 2, luego para 3, etc. Pero tuve que programar cada caso individualmente.

Ahora bien, es bastante malo tener que hacerlo de esta manera. Pero no tengo idea de cómo hacer una función que busque el camino sin importar cuantos waypoints tenga que cruzar.

Si alguien se le ocurre cómo hacerlo, le estaría muy agradecido (y, como es lógico, le voy a dar los créditos en el tutorial que pienso postear cuando lo termine)

No posteo el código ni el .fla, porque lo único que me interesa es algún pseudocódigo para partir desde ahí.


Desde ya, muchas gracias.

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 21 Jul 2007 10:18 pm
Pues sería algo así:

Código :

function findPath (arr:Array)
{
...
while (arr.length>1)
{
findPath (arr);
}
return arr[0]
}


Esto tiene algunas pegas, como que en AS2, solo puede haber 256 niveles de recursividad, y sino te salta un error. De todas formas, en esto de los pathfinders puedes considerar coger alguno ya hecho, como el a++

Saludos.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 23 Jul 2007 02:27 pm
Muchas gracias, voy a intentar con esa estructura a ver cómo me va.

(por cierto, buscando pathfinders ya hechos, llegué a un tutorial muy interesante, gracias por el consejo)

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.