Un cálculo comúnmente utilizado en la IA es calcular la distancia entre dos objetos del juego.
No sólo es importante para determinar dónde están las cosas en el entorno con respecto a otras, sino
también para calcular ángulos y normalizar vectores.
Verás que el cálculo de la distancia se utiliza una y otra vez en este curso, especialmente cuando
se trata de determinar si un enemigo está al alcance o dónde están otros recursos.
Para calcular una distancia, vas a necesitar dos puntos.
Pueden ser dos lugares distintos o cualquiera de los extremos de un vector.
En este caso, en la pantalla tengo el tanque que está a tres en la X y a dos en la Y y la
célula de combustible que está a 12 en la X y a diez en la Y.
Entonces, ¿cómo encontramos la distancia entre estos?
Pues bien, dos puntos cualesquiera de un entorno, ya sea 2D o 3D, pueden servir para formar un triángulo rectángulo,
como puedes ver aquí.
Una vez que tengas un triángulo rectángulo o que sepas que es posible formar un triángulo rectángulo,
que siempre lo es en este caso, entonces puedes aplicar el teorema de Pitágoras.
Ahora bien, ¿recuerdas qué era el Teorema de Pitágoras de tus matemáticas del instituto?
Bien, recuerda por un momento, si quieres, que el lado más largo de un triángulo rectángulo
se llama hipotenusa y los otros lados.
Si los etiquetamos como A y B y no importa el orden en que lo hagas, entonces el Teorema de Pitágoras
dice que la longitud de la hipotenusa es igual a la raíz cuadrada de A al cuadrado más B al cuadrado.
Así que son las longitudes de A y B al cuadrado.
¿Y cómo encontramos estas longitudes?
Bueno, si echas un vistazo a a, resulta que es la diferencia en la dirección X de donde está el depósito y donde está
la célula de combustible.
Y B es la diferencia entre donde está el tanque y la célula de combustible en la dirección Y.
¿Qué aspecto tiene esto cuando lo resolvemos?
Bueno, en primer lugar, tenemos que averiguar qué es A y A va a ser la diferencia entre las
coordenadas X del tanque y el combustible.
Así que X uno menos x dos y B va a ser la diferencia entre las coordenadas Y del tanque y el combustible.
Ahora, vamos a hacer una operación al cuadrado en estos, así que no importa el orden en que los hagas.
Mientras que si el tanque es el elemento uno, entonces el combustible siempre sigue siendo el elemento dos para que las coordenadas x e y tengan
que estar en el mismo orden dentro de esas ecuaciones.
Así que cuando introducimos los valores reales, obtenemos tres -12 al cuadrado más dos menos diez al
cuadrado, lo que nos da por la vía 81 más 64.
La raíz cuadrada de eso es 12.
Eso significa que la longitud de la hipotenusa o la distancia entre el depósito y el combustible
en este caso es 12. 04.
Ahora bien, no importa en qué parte del entorno estén tus puntos, siempre puedes hacer un triángulo rectángulo.
Pero lo importante aquí es que ese triángulo rectángulo va a tener un lado
paralelo al eje x y otro paralelo al eje y.
Y la longitud de esos dos lados siempre te va a dar esa diferencia que tienes que poner
en el Teorema de Pitágoras.
Vamos a investigar los cálculos de distancia en 2D.
Así que para hacer esto, quiero que abra un nuevo proyecto de la unidad y, a continuación, llevar en el inicio de archivo.
Attash Esta conferencia.
Si no ves la vista que tengo aquí, puedes hacer clic en este botón 2D de la parte superior
y debería alinear tu escena por ti.
Ahora en la vista del juego.
Lo conseguí poniendo mi relación de aspecto en 16 a 9, lo que te dará esto.
En este punto, si pulsamos el play, verás que puedes utilizar las teclas de flecha para conducir el tanque.
Ahora, este script de conducción que está aquí es exactamente el mismo script de conducción que hemos utilizado en la conferencia
anterior para nuestro pequeño aldeano agricultor.
Y lo que vamos a hacer es calcular la distancia entre el tanque y el combustible que está aquí arriba.
Bien, abramos el script de la unidad.
De acuerdo.
Así que verás que nuestras actualizaciones se producen en la actualización.
Y como estábamos hablando antes, probablemente podríamos poner estos en la actualización tardía aunque
no va a hacer una gran diferencia en este escenario particular.
En primer lugar, este script está unido al tanque, por lo que la transformación a la que se hace referencia dentro de este script
pertenece al tanque.
Por lo tanto, la posición de transformación es la posición del tanque.
Ahora vamos a añadir en el combustible, por lo que vamos a traer en la parte superior como un objeto de juego.
Así que el objeto de juego público, el combustible como eso.
De acuerdo.
Así que si le damos a guardar, volvemos a la unidad por un momento y luego seleccionamos el tanque, lo que quieres hacer con tu script
donde tienes el combustible en él, es arrastrar desde la jerarquía y soltarlo aquí
abajo en el script de la unidad.
Así que ahora que se puede hacer referencia desde dentro de allí, bien, de vuelta a nuestro código, vamos a poner un poco más de
código aquí para determinar cuando hemos golpeado la barra espaciadora.
Y cuando hayamos pulsado la barra espaciadora, vamos a imprimir la distancia entre el depósito y el combustible.
Así que esto irá si.
Entrada, no bajar la llave y dentro de aquí pondremos el código de la llave punto espacio.
Ahora, si ese es el caso, entonces vamos a calcular.
La distancia es así.
Bien, ahora calcular la distancia es un método que tenemos que escribir.
Así que vamos a subir aquí por encima de nuestra actualización tardía y vamos a poner void, calcular la distancia y dentro de aquí vamos a calcular
la distancia y luego hacer un registro de depuración para imprimirlo.
Así que vamos a crear, en primer lugar, un flotador para la distancia.
Y luego iremos a depurar el punto de registro y pondremos la distancia.
O algo así.
Así que puedes ver esa impresión en la consola.
De acuerdo.
Una vez hecho esto, vamos a guardarlo y lo probaremos.
Por supuesto, sólo va a imprimir cero, pero al menos conseguiremos que se imprima
algo para asegurarnos de que no tenemos ningún error de compilación hasta ahora.
Vale, pues pulsa el play.
Ahora no necesito mover realmente mi tanque, sino que voy a pulsar la barra espaciadora en la consola.
Deberías tener la distancia cero ahí dentro.
Así que ya está listo.
Vamos a volver a ese script de conducción y en calcular la distancia, usar el teorema de Pitágoras
para calcular la distancia entre el tanque y el combustible.
Así que este es el reto para ti usando la fórmula del Teorema de Pitágoras, que está en la pantalla ahora, quiero
que escribas el código para calcular la distancia real para que luego podamos imprimirla.
Así que pon en pausa el vídeo.
Ahora ve y hazlo.
Y cuando volvamos, repasaré la respuesta contigo.
Bienvenido de nuevo.
¿Cómo has hecho ese cálculo?
Sí.
Bueno, la distancia en este caso va a ser igual a la raíz cuadrada del punto ef.
Así que vamos a encontrar la raíz cuadrada de las matemáticas.
F punto pow de combustible.
Posición transformada del punto.
Posición de transformación menos.
Aquí está el poder de dos.
Además, se baja en la siguiente línea para eso.
-- ...efecto.
Pal.
Pocas oposiciones transformadas, menos oposiciones transformadas a la potencia de dos.
Bien, ahora, me he dado cuenta de que el primero aquí va a ser la diferencia entre nuestros
valores x.
Así que X de los dos, y luego el otro es el valor Z.
Ahora bien, ¿por qué utilizamos el valor Z?
Porque en este caso, si echamos un vistazo a nuestra pantalla aquí, tenemos los valores Z y X.
En cuanto al valor Y, en realidad no nos estamos moviendo hacia arriba y hacia abajo, por
lo que no estamos realmente interesados en ninguna distancia en la dirección Y, aunque si quisieras poner
eso, entonces sólo vas a incluir otro más y luego los mismos cálculos para la Y a la potencia de dos.
Muy bien.
Así que esto va a dar un nuevo valor de la distancia.
Así que guarda eso.
Volvamos aquí y pulsemos el play para poder probarlo.
Así que mirando en tu consola mientras te mueves con el tanque, así que pulsa la barra espaciadora y verás una distancia.
Ahora bien, esto en teoría se va a acortar cuanto más se acerque al combustible, lo cual es así.
Así que es una buena forma de comprobarlo visualmente.
Sus cálculos están haciendo lo correcto.
Siempre es bueno poder hacer este tipo de comprobaciones en estos cálculos.
Bien, genial.
Así que ahora está funcionando.
Así es como se incluye el teorema de Pitágoras en esto.
Cuando volvamos en la próxima clase, vamos a seguir viendo los cálculos de
distancia y cómo se puede hacer en realidad y los valores de la unidad que se puede utilizar también.