Y sin demora.
Volvamos a la programación de la quinta parte de este código.
Volvamos a encontrar caminos.
Así que tenemos nuestro nuevo bloque de ruta aquí.
Y así voy a obtener los mensajes de texto que se adjuntan a ese objeto.
Así que llamémosle bloque de valores igual a camino.
Consigue componentes en los niños y quieres el que tiene la S para que tengas varios.
Y queremos obtener nuestro texto.
Malla.
Los niños.
Y luego los recibirás en el orden en que vienen.
Así que la primera es la G, la siguiente es la H, y la siguiente es la F, ya que están unidas a ese prefabricado
en particular.
Así que podemos ir valores a cero punto de texto es igual y, a continuación, sólo hay que poner un poco de texto allí.
Voy a poner una G así.
Además de G a la cadena con un poco de formato para que no obtengamos algo ridículo con un montón
de decimales así.
Y luego sólo necesitamos esto para la H y la F, así que vamos a pegar esto dos veces más.
Ve al valor uno para la H y dos para la F y esta es la H, esta es la F y luego esta es la H y esta es la F, casi terminado
el interior de esta caída.
Lo último que tenemos que hacer es añadir el marcador a nuestra lista abierta.
Pero antes de hacerlo, tenemos que asegurarnos de que no existe ya, porque de hecho existe.
Sólo queremos actualizar sus valores.
Así que puede que ya esté en la lista abierta.
Y entonces lo vemos desde un punto de vista diferente.
Así que desde un nodo diferente se convierte en vecino de ese nodo, todavía tenemos que actualizar los valores g, h y F.
Así que voy a crear un nuevo método para hacerlo.
Y una vez más, lo pondremos en la búsqueda.
Baja aquí, tira.
Marcador de actualización.
Mapa de ubicación de la pose de flotación g.
Flotador h.
Flotador si y después camino.
Marco.
Y luego dentro de aquí para cada uno.
Marcador de ruta p en abierto si p punto ubicación punto es igual a pausa, entonces estamos hablando del mismo marcador de ruta.
Y luego dentro de aquí podemos actualizar su valor.
Así que p g es igual a g, p h es igual a h y p punto f es igual a f.
De acuerdo.
Así que esto sólo necesita ser arreglado.
Punto P.
H y luego F y luego también tenemos que establecer el padre de ese marcador al nodo que estamos trabajando actualmente.
Así que P punto padre es igual a l variable padre por la que hemos pasado, entonces podemos devolver true diciendo que sí, que nos hemos
ocupado de ella.
Por lo demás, buscamos todo el camino hasta aquí.
No lo hemos encontrado, así que podemos devolver false y volver a tratarlo en el otro código.
Así que volvamos a nuestra búsqueda donde ahora usaremos este marcador de actualización.
Y aquí vamos a poner si.
No actualizar el marcador.
Pasando por el vecino, el valor g, el valor h y el valor F y luego el nodo.
Así que este nodo que luego se convertirá en su padre de otra manera abierta añadir nuevo marcador de ruta.
Vecino g h si.
El bloque Puff y este nodo.
De acuerdo.
Uf.
Un montón de código.
Ya casi hemos terminado.
Ya casi podemos probarlo, pero todavía no.
Así que hemos hecho un bucle a través de todos estos vecinos y hemos calculado sus valores FG y F y esencialmente los
hemos puesto en la lista abierta.
¿Qué hacemos ahora?
Tenemos que elegir uno que se convierta en el próximo nodo en el que nos centremos.
Así que la posición que va a generar el nuevo lote de vecinos, ¿qué determina la que se elige?
Entonces, ¿con cuál de la lista abierta nos quedamos?
Bueno, es el que tiene el valor F más bajo.
Así que la forma más fácil de hacerlo es reordenar la lista abierta de menor a mayor valor F.
Y para ello podemos utilizar la biblioteca de enlaces.
Así que establecemos nuestra lista abierta para que sea igual a nuestra lista abierta punto ordenada u ordenada por y estamos ordenando por
un valor que es de p f, eso es básicamente lo que dice.
Y luego el punto hace que vuelva a ser una lista a lista de marcadores de ruta.
Ahora estoy volviendo a esta línea en el código que sé que usted acaba de escribir, pero es como un tiempo
abajo de la pista para mí y yo sólo quiero hacer que usted consciente de lo que está pasando con este orden
por lo que mientras que esto va a funcionar, imagine que usted tiene todos estos nodos abiertos y los ha ordenado
por el valor F y hay varios de ellos sentado en la parte superior y todos ellos tienen el mismo valor f.
Entonces, ¿cuál de ellos eliges?
Bueno, tiene más sentido si entonces elegimos el que tiene el valor h más alto.
Así que lo que vamos a hacer en este caso es hacer otro orden dentro de este ordenamiento y lo hacemos
usando un punto.
Entonces por ahora esto es solo parte de nuestra librería de enlaces para poder hacer esto y vamos
a poner n igual a mayor que n punto h ahí y eso entonces ordenará por F y luego dentro de todos los F del mismo, los ordenará
en segundo lugar por la H y eso mejorará este algoritmo.
Ahora, voy a volver a la versión anterior del código que verás en un momento, porque
seguí escribiendo desde entonces.
Pero sólo recuerde, cada vez que vea esta línea en el código de ahora en adelante, entonces tenemos que
tener esto, entonces comprar allí en lugar de mi antigua versión de la misma.
¿Verdad?
Ya está hecho.
A continuación, podemos seleccionar el que está en la parte superior de esa lista porque va a ser el que tiene la f k más
pequeña.
Así que marcador de camino.
PM.
Equivale a un marcador de trayectoria.
Punto de la lista abierta.
Elemento en la posición cero.
Así que el que está en la parte superior, vamos a convertirlo en un soporte.
Bien, entonces podemos cerrar ese marcador de ruta.
Así que lo sacamos de la lista abierta y lo ponemos en la lista cerrada.
Así que cerrado no agrega marcador de ruta así.
¿Verdad?
Así que lo hemos hecho, lo hemos cerrado y por lo tanto tenemos que quitarlo de la lista abierta.
Ahora recuerde, está sentado en la parte superior de la lista abierta por lo que podemos ir a abrir eliminar a cero.
Así que sacarlo de uno y ponerlo en el otro.
Y al mismo tiempo, también vamos a establecer su material a ese color rojo que hemos seleccionado para cerrar.
Así que pm punto marcador punto obtener componente.
El material del renderizador es igual al material cerrado.
Por último, pero no por ello menos importante, ahora tenemos que fijar nuestra última posición, que fue inicialmente el inicio.
Si lo recuerdas, la última pausa.
El nodo que se ejecutará a continuación es igual a nuestro marcador de ruta con la F más baja, de modo que
la próxima vez que lleguemos a comenzar el bucle a través de aquí, este nodo se establecerá aquí a este último nodo.
Bien, creo que estamos listos para ejecutar esto.
Así que vamos a bajar a nuestra actualización.
Lo que vamos a hacer aquí abajo es utilizar una tecla diferente para recorrer nuestra estrella.
Así que si el punto de entrada obtener clave hacia abajo es que voy a utilizar C no por ninguna razón en particular, excepto para s se utiliza generalmente para la
navegación.
Así que voy a elegir una clave y luego vamos a ejecutar una búsqueda y vamos a pasar a través
de la última pausa, que al principio será el primer nodo.
Ahora bien, si no presionas P antes de presionar C, entonces vas a terminar con un pequeño error porque la última
pausa será realmente nula.
Así que para superar ese problema, si llegas a tu búsqueda, lo que quieres hacer es poner esta línea
de código aquí para asegurarte de que pulsar C no hará absolutamente nada.
Si no has pulsado P primero y volveremos a probar esto en el próximo vídeo.