Comunidad de diseño web y desarrollo en internet online

Pathfinding en Actionscript usando vectores

El siguiente tip es un ejemplo de unas ideas en las que estuve trabajando estos últimos días para que un programa encuentro el camino de un punto a a un punto B, superando obstáculos.

Básicamente, el punto rojo se mueve hacia el punto azul. Pero claro, esta tarea se puede complicar bastante si entre medio encontramos un objeto que le bloquee el paso. De todas formas, el MC se las "ingenia" para encontrar el camino.

Básicamente lo que hace es probar muchos caminos y emplear el primero que encuentra. Por este motivo, casi nunca encuentra el camino más corto.

El programa marca con puntitos rojos los distintos puntos por los que debe pasar el MC. De todos modos, si queremos acelerar las cosas, podemos presionar la barra (y mantenerla presionada) para indicarle al MC que puede ir directamente a un nodo sin pasar por todos los anteriores. De todos modos, esto no significa que atraviese las paredes.



Luego de probarlo por un rato, van a descubrir que la capacidad de encontrar el camino no depende tanto de la complejidad del recorrido, sino del hecho de que sólo puede haber (como máximo) 1 nodo por cada obstáculo más 1 nodo extra.

Éste es el .fla.

Aclaración: el programa no debería colgarse por un loop infinito, si demora mucho en encontrar un camino, se debe a lo pesado que puede resultar el proceso. De todos modos, si el error ocurre, agradecería que me envíen un screenshot donde se vea la disposición de los trazos en el momento del error.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate