﻿1
00:00:04,400 --> 00:00:05,180
‫Hola y bienvenido.

2
00:00:05,180 --> 00:00:12,050
‫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

3
00:00:12,050 --> 00:00:12,770
‫legible.

4
00:00:12,770 --> 00:00:15,170
‫Y vamos a utilizar los parámetros de nuevo.

5
00:00:15,290 --> 00:00:18,770
‫Esta vez, en realidad vamos a crear una función que lo tome como parámetro.

6
00:00:18,770 --> 00:00:21,110
‫Vamos a sumergirnos y ver cómo hacer esto.

7
00:00:22,160 --> 00:00:29,030
‫Por lo tanto, generalmente es una buena práctica que las funciones intenten caber en una sola pantalla.

8
00:00:29,060 --> 00:00:31,190
‫Ahora, en mi caso, mi pantalla es muy grande.

9
00:00:31,460 --> 00:00:32,720
‫Pero todavía estamos aprendiendo.

10
00:00:32,720 --> 00:00:37,250
‫Así que en realidad tiene sentido tener funciones aún más pequeñas para hacer que las cosas sean comprensibles.

11
00:00:38,060 --> 00:00:46,040
‫Y creo que esta función de agarre es demasiado larga, así que creo que podemos dividirla en unidades bastante funcionales.

12
00:00:46,040 --> 00:00:52,160
‫El primero va a ser el bit que realiza el barrido y hace todo el cálculo de los vectores

13
00:00:52,160 --> 00:00:57,710
‫de inicio y fin y genera el resultado del acierto y si lo hemos acertado o no.

14
00:00:57,710 --> 00:01:03,110
‫El booleano que dice si hemos acertado y el segundo bit está dentro de la declaración

15
00:01:03,110 --> 00:01:08,900
‫if que probablemente podamos dejar como el trabajo de agarrar porque en realidad tiene que ver con agarrar, ¿no?

16
00:01:08,900 --> 00:01:10,730
‫Tenemos que despertar al cuerpo rígido.

17
00:01:10,730 --> 00:01:16,190
‫Tenemos que agarrar un componente que tenga sentido para ser un método llamado en una función llamada agarrar.

18
00:01:16,550 --> 00:01:20,150
‫Pero esta otra cosa es un poco más tangencial.

19
00:01:20,150 --> 00:01:23,450
‫Es más una utilidad que necesitamos aprovechar.

20
00:01:23,780 --> 00:01:28,550
‫Así que me gustaría desafiarte a crear esa utilidad, agarrar una pelota al alcance.

21
00:01:28,550 --> 00:01:33,110
‫Así es como creo que debería llamarse, lo que describe lo que hace ese trozo de código.

22
00:01:33,380 --> 00:01:40,220
‫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

23
00:01:40,220 --> 00:01:41,540
‫su valor de retorno.

24
00:01:41,540 --> 00:01:43,490
‫Recuerda, tienes dos salidas.

25
00:01:43,760 --> 00:01:46,460
‫Así que tenemos resultados de aciertos y aciertos.

26
00:01:46,850 --> 00:01:51,650
‫Por lo tanto, debe pensar en intentar usar un parámetro de salida para que esto funcione.

27
00:01:52,160 --> 00:01:58,040
‫Ahora, si quieres una pequeña pista, te mostraré lo que voy a poner en el archivo de encabezado en solo

28
00:01:58,250 --> 00:01:58,940
‫un segundo.

29
00:01:58,940 --> 00:02:01,280
‫Si no lo hace, puede pausar el video ahora mismo.

30
00:02:01,850 --> 00:02:04,040
‫De lo contrario, te voy a dar la pista.

31
00:02:04,790 --> 00:02:10,820
‫Así que vamos a ir por encima para agarrar un punto h y debajo de

32
00:02:11,210 --> 00:02:18,330
‫donde tenemos que manejarnos físicamente, vamos a tener un tipo de retorno booleano que nos diga si algo

33
00:02:18,360 --> 00:02:27,020
‫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

34
00:02:27,020 --> 00:02:27,590
‫salida.

35
00:02:27,620 --> 00:02:35,360
‫Por lo tanto, será una referencia no constante al resultado de acierto F por referencia.

36
00:02:36,530 --> 00:02:41,240
‫Ampersand y luego lo llamaremos el resultado de alt hit así.

37
00:02:41,420 --> 00:02:49,130
‫Y luego creo que esto no va a cambiar nada en nuestra función, así que también podemos hacerla constante.

38
00:02:49,280 --> 00:02:51,980
‫Son unos pequeños puntos de bonificación si ya habías pensado en eso.

39
00:02:52,580 --> 00:02:57,620
‫Así que adelante, pausa, video e intenta completar esa función en el archivo C++.

40
00:03:01,030 --> 00:03:01,390
‫Bueno.

41
00:03:01,390 --> 00:03:02,120
‫Bienvenido de nuevo.

42
00:03:02,140 --> 00:03:04,720
‫Así que voy a copiarlo en C++.

43
00:03:05,050 --> 00:03:10,870
‫Lo pondré debajo de nuestro componente de control de física para que coincida con el orden que tenemos en el archivo

44
00:03:10,870 --> 00:03:11,560
‫de encabezado.

45
00:03:12,040 --> 00:03:16,630
‫Voy a agregar el capturador U al frente.

46
00:03:17,050 --> 00:03:18,460
‫Voy a sangrar correctamente.

47
00:03:18,490 --> 00:03:25,030
‫Voy a agregar, en lugar del punto y coma, las llaves, y luego voy a mover el código

48
00:03:25,030 --> 00:03:26,800
‫que tenemos para agarrar.

49
00:03:26,860 --> 00:03:31,270
‫Entonces, comenzando en la línea 53 para mí, hasta la 65.

50
00:03:31,690 --> 00:03:33,250
‫Voy a cortar todo eso.

51
00:03:34,150 --> 00:03:35,920
‫Lo reemplazaré con algo en solo un segundo.

52
00:03:36,340 --> 00:03:40,540
‫Voy a pegarlo para agarrar una pelota al alcance.

53
00:03:41,140 --> 00:03:44,660
‫Y tenemos este resultado exitoso que hemos creado.

54
00:03:44,680 --> 00:03:53,290
‫Lo que podemos hacer es establecer eso, resultados de aciertos iguales a nuestro resultado de aciertos que tenemos aquí.

55
00:03:53,680 --> 00:04:00,970
‫Es posible que solo queramos hacer eso si hemos acertado dos, por lo que podemos poner que la declaración if ha

56
00:04:00,970 --> 00:04:08,080
‫acertado así y envolver esta asignación, los resultados de salida a los resultados dentro de la declaración if y luego podemos

57
00:04:08,080 --> 00:04:15,700
‫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

58
00:04:15,700 --> 00:04:22,690
‫se puede hacer aquí porque estamos pasando por referencia al canal de barrido y al agarrar la bola en el

59
00:04:22,690 --> 00:04:23,200
‫alcance.

60
00:04:23,200 --> 00:04:28,930
‫En realidad, no necesitamos crear un nuevo resultado de visita aquí y luego copiarlo en el resultado de la visita.

61
00:04:28,930 --> 00:04:30,070
‫Eso es solo perder la memoria.

62
00:04:30,790 --> 00:04:36,190
‫Lo que podemos hacer es eliminar el resultado de golpe que estamos creando en el interior, poner la bola al alcance.

63
00:04:36,640 --> 00:04:44,050
‫Y en su lugar, podemos usar la referencia que hemos pasado para pasar directamente al barrido individual por

64
00:04:44,050 --> 00:04:44,920
‫canal.

65
00:04:44,930 --> 00:04:50,380
‫Entonces, en realidad está pasando esta referencia a las funciones al barrido individual por canal donde

66
00:04:50,380 --> 00:04:51,460
‫se completará.

67
00:04:51,820 --> 00:04:57,160
‫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

68
00:04:57,160 --> 00:04:57,700
‫de leer.

69
00:04:57,970 --> 00:05:01,510
‫Y, de hecho, no creo que necesitemos una variable para almacenar resultados.

70
00:05:01,510 --> 00:05:03,720
‫Podemos seguir adelante y regresar.

71
00:05:03,730 --> 00:05:09,670
‫Será mucho más limpio devolver los resultados del canal Get World Suite.

72
00:05:09,670 --> 00:05:16,030
‫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

73
00:05:16,030 --> 00:05:16,840
‫quien lo llame.

74
00:05:17,170 --> 00:05:21,900
‫Entonces, hablando de quien sea que lo esté llamando, ahora tenemos que subir a nuestro agarre.

75
00:05:21,910 --> 00:05:24,610
‫Necesitamos crear nuestro resultado de éxito en alguna parte.

76
00:05:24,610 --> 00:05:25,630
‫Tenemos que crearlo aquí.

77
00:05:25,630 --> 00:05:27,910
‫Así que presione resultado, este es el que vamos a completar.

78
00:05:28,420 --> 00:05:34,930
‫Luego vamos a crear una variable brillante que va a ser golpeada para establecer eso igual

79
00:05:34,930 --> 00:05:42,100
‫a que agarres una pelota al alcance y vamos a pasar el resultado del golpe por referencia que

80
00:05:42,100 --> 00:05:42,970
‫queremos poblar.

81
00:05:43,390 --> 00:05:49,000
‫Y luego, si hemos acertado, seguiremos adelante y ejecutaremos el código de captura.

82
00:05:49,360 --> 00:05:50,260
‫Cosas fantásticas.

83
00:05:50,260 --> 00:05:56,560
‫Hemos movido algo en él a una función para que esta función de captura se ajuste a una sola pantalla.

84
00:05:56,560 --> 00:06:04,030
‫Y nuevamente hemos hecho uso de nuestros parámetros, esta vez creando una función para nosotros mismos que los usamos

85
00:06:04,030 --> 00:06:04,960
‫en serio.

86
00:06:05,170 --> 00:06:07,060
‫Te veré en el próximo video.

