2009-05-06 13 views
5

Estoy trabajando en un juego que utiliza A-star (A *) para encontrar ruta pero he llegado a un punto donde por Tengo algunos objetos que son más grandes que un solo cuadro de cuadrícula.Cómo tratar objetos de diferentes tamaños en una situación de ruta de acceso (A *, estrella A)

Estoy ejecutando en una cuadrícula de 16 * 16px. los segmentos de pared son 16 * 16 y hacen que un solo cuadrado sea intransitable. Algunos de mis malos son 32 * 32, por lo que deben verificar que un espacio de al menos 2 cuadrículas sea ancho para poder atravesarlo.

No puedo simplemente hacer la cuadrícula 32 * 32 ya que el diseño requiere paredes delgadas (a 16px) y hay un par de elementos defectuosos más pequeños que solo ocupan un solo cuadrado de 16 * 16.

¿Cómo implemento este entorno de resolución mutli? ¿La estrella A sigue siendo la herramienta correcta para usar?

Respuesta

0

Para una solución relativamente simple, que se pegaba a la misma algoritmo A * como para objetos de tamaño 16x16, pero con una forma ligeramente diferente para evaluar si un cuadrado es transitable o no.

  • Un objeto con un tamaño de 16x16 puede caminar sobre un cuadrado si ese cuadrado es accesible.
  • Un objeto de tamaño 32x32 puede caminar sobre un cuadrado si ese cuadrado y sus vecinos son accesibles.
+1

Desafortunadamente, esto no funcionará cuando un espacio de 2 cuadrados de alto. Ambos cuadrados de la brecha tienen vecinos que no se pueden recorrer, por lo que se informa que no se puede caminar. Podría ser mejor decir que un azulejo se puede recorrer para objetos de 32 tamaños si el cuadrado debajo de él, a su derecha, y debajo y a la derecha también se puede caminar. –

Cuestiones relacionadas