Cristalab

                 ¿Quieres registrarte?

Pathfinding en Actionscript usando vectores

25 de Junio del 2007
6,179 visitas

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.


Artículos Relacionados


Etiquetas actionscript

Comentarios | Enviar un comentario
Me da un error diciendo que el script no puede encontrar un camino, y es sólo una línea recta.

NEXT
Por: NEXT_blog
Resuelto, pensaba que tenía que dibujar el recorrido.

NEXT
Por: NEXT_blog
esta excelente mi estimado :) felicitaciones, me gusta... y mucho :)
Por: eldervaz
como no
Por: elisa_blog
felicidades por el truco
Por: lineagrafica
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.