‫Hola y bienvenido.
‫En esta lección, vamos a refactorizar nuestro código para hacer que nuestra función de captura sea más pequeña y más
‫legible.
‫Y vamos a utilizar los parámetros de nuevo.
‫Esta vez, en realidad vamos a crear una función que lo tome como parámetro.
‫Vamos a sumergirnos y ver cómo hacer esto.
‫Por lo tanto, generalmente es una buena práctica que las funciones intenten caber en una sola pantalla.
‫Ahora, en mi caso, mi pantalla es muy grande.
‫Pero todavía estamos aprendiendo.
‫Así que en realidad tiene sentido tener funciones aún más pequeñas para hacer que las cosas sean comprensibles.
‫Y creo que esta función de agarre es demasiado larga, así que creo que podemos dividirla en unidades bastante funcionales.
‫El primero va a ser el bit que realiza el barrido y hace todo el cálculo de los vectores
‫de inicio y fin y genera el resultado del acierto y si lo hemos acertado o no.
‫El booleano que dice si hemos acertado y el segundo bit está dentro de la declaración
‫if que probablemente podamos dejar como el trabajo de agarrar porque en realidad tiene que ver con agarrar, ¿no?
‫Tenemos que despertar al cuerpo rígido.
‫Tenemos que agarrar un componente que tenga sentido para ser un método llamado en una función llamada agarrar.
‫Pero esta otra cosa es un poco más tangencial.
‫Es más una utilidad que necesitamos aprovechar.
‫Así que me gustaría desafiarte a crear esa utilidad, agarrar una pelota al alcance.
‫Así es como creo que debería llamarse, lo que describe lo que hace ese trozo de código.
‫Así que extraiga todo ese código de barrido en una nueva función privada, cómo pensar en cuáles deberían ser sus parámetros y
‫su valor de retorno.
‫Recuerda, tienes dos salidas.
‫Así que tenemos resultados de aciertos y aciertos.
‫Por lo tanto, debe pensar en intentar usar un parámetro de salida para que esto funcione.
‫Ahora, si quieres una pequeña pista, te mostraré lo que voy a poner en el archivo de encabezado en solo
‫un segundo.
‫Si no lo hace, puede pausar el video ahora mismo.
‫De lo contrario, te voy a dar la pista.
‫Así que vamos a ir por encima para agarrar un punto h y debajo de
‫donde tenemos que manejarnos físicamente, vamos a tener un tipo de retorno booleano que nos diga si algo
‫tiene que podemos agarrar algo bueno, vamos a agarrar un pelota al alcance, entonces necesitamos darle un parámetro que será un parámetro de
‫salida.
‫Por lo tanto, será una referencia no constante al resultado de acierto F por referencia.
‫Ampersand y luego lo llamaremos el resultado de alt hit así.
‫Y luego creo que esto no va a cambiar nada en nuestra función, así que también podemos hacerla constante.
‫Son unos pequeños puntos de bonificación si ya habías pensado en eso.
‫Así que adelante, pausa, video e intenta completar esa función en el archivo C++.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que voy a copiarlo en C++.
‫Lo pondré debajo de nuestro componente de control de física para que coincida con el orden que tenemos en el archivo
‫de encabezado.
‫Voy a agregar el capturador U al frente.
‫Voy a sangrar correctamente.
‫Voy a agregar, en lugar del punto y coma, las llaves, y luego voy a mover el código
‫que tenemos para agarrar.
‫Entonces, comenzando en la línea 53 para mí, hasta la 65.
‫Voy a cortar todo eso.
‫Lo reemplazaré con algo en solo un segundo.
‫Voy a pegarlo para agarrar una pelota al alcance.
‫Y tenemos este resultado exitoso que hemos creado.
‫Lo que podemos hacer es establecer eso, resultados de aciertos iguales a nuestro resultado de aciertos que tenemos aquí.
‫Es posible que solo queramos hacer eso si hemos acertado dos, por lo que podemos poner que la declaración if ha
‫acertado así y envolver esta asignación, los resultados de salida a los resultados dentro de la declaración if y luego podemos
‫continuar y en el final de la función, solo el retorno ha golpeado así que ahora hay una optimización o una mejora que
‫se puede hacer aquí porque estamos pasando por referencia al canal de barrido y al agarrar la bola en el
‫alcance.
‫En realidad, no necesitamos crear un nuevo resultado de visita aquí y luego copiarlo en el resultado de la visita.
‫Eso es solo perder la memoria.
‫Lo que podemos hacer es eliminar el resultado de golpe que estamos creando en el interior, poner la bola al alcance.
‫Y en su lugar, podemos usar la referencia que hemos pasado para pasar directamente al barrido individual por
‫canal.
‫Entonces, en realidad está pasando esta referencia a las funciones al barrido individual por canal donde
‫se completará.
‫Eso elimina la necesidad de la instrucción if, lo que hace que esta función sea un poco más rápida y fácil
‫de leer.
‫Y, de hecho, no creo que necesitemos una variable para almacenar resultados.
‫Podemos seguir adelante y regresar.
‫Será mucho más limpio devolver los resultados del canal Get World Suite.
‫Así que simplemente estamos pasando los resultados de eso a través de una copia de seguridad para que se pueda agarrar al alcance o
‫quien lo llame.
‫Entonces, hablando de quien sea que lo esté llamando, ahora tenemos que subir a nuestro agarre.
‫Necesitamos crear nuestro resultado de éxito en alguna parte.
‫Tenemos que crearlo aquí.
‫Así que presione resultado, este es el que vamos a completar.
‫Luego vamos a crear una variable brillante que va a ser golpeada para establecer eso igual
‫a que agarres una pelota al alcance y vamos a pasar el resultado del golpe por referencia que
‫queremos poblar.
‫Y luego, si hemos acertado, seguiremos adelante y ejecutaremos el código de captura.
‫Cosas fantásticas.
‫Hemos movido algo en él a una función para que esta función de captura se ajuste a una sola pantalla.
‫Y nuevamente hemos hecho uso de nuestros parámetros, esta vez creando una función para nosotros mismos que los usamos
‫en serio.
‫Te veré en el próximo video.