﻿1
00:00:04,510 --> 00:00:05,290
‫Hola y bienvenido.

2
00:00:05,290 --> 00:00:10,810
‫En esta lección, vamos a refactorizar nuestro disparador de grupo para que esté listo para que agreguemos más

3
00:00:10,810 --> 00:00:11,350
‫código.

4
00:00:11,350 --> 00:00:15,190
‫Por el momento, se estaba yendo realmente de las manos quienes iban a refactorizarlo a

5
00:00:15,190 --> 00:00:18,700
‫una pequeña función como esta que es mucho más sencilla de leer.

6
00:00:18,700 --> 00:00:21,070
‫Profundicemos y veamos cómo hacer este refactor.

7
00:00:22,220 --> 00:00:22,430
‫Bueno.

8
00:00:22,430 --> 00:00:27,800
‫Así que queremos poner algo de sonido en nuestro juego y el lugar donde vamos a hacer esto es en el arma

9
00:00:27,800 --> 00:00:28,610
‫cuando estamos disparando.

10
00:00:28,610 --> 00:00:30,050
‫Ese es el primer puerto de escala.

11
00:00:30,050 --> 00:00:33,290
‫Creo que un buen tipo de sonido de disparo, un sonido de impacto sería genial.

12
00:00:33,920 --> 00:00:39,230
‫El único problema es que cuando volví a nuestra función de gatillo, noté que se había vuelto extravagantemente

13
00:00:39,230 --> 00:00:39,590
‫grande.

14
00:00:39,590 --> 00:00:41,120
‫No cabe en una de mis pantallas.

15
00:00:41,120 --> 00:00:45,350
‫También es un poco difícil de leer y entender dónde estaríamos poniendo esta funcionalidad.

16
00:00:45,740 --> 00:00:50,840
‫Entonces, mientras hacemos el esfuerzo de comprender realmente cuál es la funcionalidad aquí, tal vez valga la pena

17
00:00:50,990 --> 00:00:56,780
‫hacer una refactorización rápida o extraer algunas de estas cosas en otros métodos para que no sea tan difícil de

18
00:00:56,780 --> 00:00:57,260
‫leer.

19
00:00:58,070 --> 00:01:03,140
‫Ahora, si vas y echas un vistazo a este código y tratas de averiguar cuáles son las

20
00:01:03,140 --> 00:01:08,510
‫cosas básicas que está haciendo, entonces verás que una gran parte de esto en realidad está configurada para nuestra línea.

21
00:01:08,510 --> 00:01:12,020
‫Traza todo este fragmento desde la línea 28 hasta la 43.

22
00:01:12,560 --> 00:01:13,880
‫y qué estamos haciendo?

23
00:01:13,880 --> 00:01:18,950
‫Bueno, obtenemos el peón del propietario, luego verificamos cómo obtener el controlador del propietario, luego obtenemos la ventana

24
00:01:18,950 --> 00:01:23,810
‫gráfica de eso, luego obtenemos la ubicación final en función del rango máximo y luego estamos

25
00:01:23,810 --> 00:01:26,570
‫pasando en algunos parámetros de golpe para ignorar cosas.

26
00:01:26,870 --> 00:01:33,550
‫Todo esto está configurado para nuestro seguimiento de línea, entonces, ¿por qué no lo extraemos en su propia función aquí?

27
00:01:34,220 --> 00:01:37,550
‫Voy a crear una nueva función privada abajo a la derecha en la parte inferior.

28
00:01:37,550 --> 00:01:45,680
‫Después de nuestras variables, será de retorno booleano porque queremos reemplazar esencialmente esta llamada aquí que devuelve

29
00:01:45,680 --> 00:01:52,220
‫el éxito con una que también nos da el resultado del éxito.

30
00:01:52,790 --> 00:01:59,960
‫Así que vamos a hacer esto como algo que voy a llamar función de rastreo de armas y va a

31
00:01:59,960 --> 00:02:01,490
‫tener algunos parámetros aquí.

32
00:02:01,520 --> 00:02:03,860
‫Es decir, uno de ellos va a ser el resultado del éxito.

33
00:02:03,860 --> 00:02:07,370
‫Así que presiona resultado, ampersand para convertirlo en una referencia.

34
00:02:07,370 --> 00:02:10,070
‫Y como no es una referencia constante, sabemos que es un parámetro de salida.

35
00:02:10,190 --> 00:02:11,150
‫Llama a esto el golpe.

36
00:02:11,150 --> 00:02:14,360
‫Y en realidad puede haber otro que necesitemos aquí.

37
00:02:14,660 --> 00:02:21,920
‫Es decir, puedo ver que tenemos la rotación saliendo de este fragmento de código y, de hecho, estamos

38
00:02:21,920 --> 00:02:23,270
‫negando esa rotación.

39
00:02:23,270 --> 00:02:26,600
‫Entonces, lo que realmente nos interesa es la dirección del disparo.

40
00:02:26,600 --> 00:02:28,550
‫Así que tal vez eso es lo que tenemos que buscar.

41
00:02:28,550 --> 00:02:31,850
‫Así que voy a crear un parámetro de salida de vector F.

42
00:02:32,690 --> 00:02:37,400
‫Así que vector ampersand y será esta dirección de disparo.

43
00:02:38,300 --> 00:02:41,750
‫Estas son las dos salidas que van a salir en el rastro del arma.

44
00:02:42,290 --> 00:02:45,350
‫Ahora avancemos y creemos la implementación aquí.

45
00:02:46,370 --> 00:02:53,210
‫Y lo que queremos hacer es esencialmente copiar todo este código en eso.

46
00:02:54,620 --> 00:02:55,460
‫Ver cómo va.

47
00:02:56,330 --> 00:03:00,060
‫Y también queremos estar revisando esta toma.

48
00:03:00,080 --> 00:03:00,710
‫Dirección.

49
00:03:01,520 --> 00:03:05,810
‫Saca eso y pégalo justo antes del final.

50
00:03:05,810 --> 00:03:11,660
‫O tal vez solo escuchar después de que tenemos nuestra ventana de visualización del jugador, podemos establecer que la dirección de su disparo sea

51
00:03:11,660 --> 00:03:13,100
‫igual a la rotación negativa.

52
00:03:13,610 --> 00:03:19,160
‫Pero es importante tener en cuenta aquí que en realidad no queremos configurar una variable local.

53
00:03:19,160 --> 00:03:22,280
‫Entonces, si coloca el tipo aquí, establecerá una dirección de disparo local.

54
00:03:22,610 --> 00:03:27,710
‫Queremos eliminar eso para que esté configurando la dirección de disparo en los parámetros de AMP, lo que en realidad

55
00:03:27,710 --> 00:03:32,340
‫significa que está configurando la dirección de disparo que vamos a pasar en la función que lo llama.

56
00:03:33,140 --> 00:03:34,700
‫Lo mismo ocurre con el golpe.

57
00:03:34,700 --> 00:03:42,200
‫Necesitamos eliminar este hit local para que el hit que se pasa al rastreo de línea individual por canal sea el hit que se

58
00:03:42,200 --> 00:03:44,030
‫pasó al rastreo de armas.

59
00:03:45,260 --> 00:03:50,750
‫Y finalmente, ¿hay algo más que hacer es hacer una línea que ahora no es necesaria y que también sea un

60
00:03:50,750 --> 00:03:51,230
‫éxito?

61
00:03:51,230 --> 00:03:56,180
‫Bueno, solo necesitamos volver a ser el resultado del seguimiento de línea solo por canal.

62
00:03:56,180 --> 00:03:59,600
‫Eso va a ser si nuestro rastreo de armas ha tenido éxito o no.

63
00:03:59,870 --> 00:04:02,420
‫Así que hemos logrado que esta sangría dure un poco.

64
00:04:02,420 --> 00:04:06,620
‫Ahora podemos colocar todo en una pantalla, y es un poco más fácil de entender que, sí,

65
00:04:06,620 --> 00:04:09,140
‫todo esto está relacionado con obtener un rastro de armas.

66
00:04:09,800 --> 00:04:14,930
‫Podemos subir a nuestro CP de armas y ahora podemos configurar nuestro éxito base aquí.

67
00:04:14,930 --> 00:04:23,900
‫Así que el éxito del Grupo B, vamos a tener que establecerlo como el rastro del arma y tenemos que pasar algunos parámetros aquí.

68
00:04:23,900 --> 00:04:26,720
‫Por lo tanto, aún debemos declararlos en algún lugar si se obtiene un resultado.

69
00:04:28,190 --> 00:04:29,180
‫Va a ser uno de ellos.

70
00:04:29,440 --> 00:04:30,380
‫Simplemente va a golpear.

71
00:04:30,890 --> 00:04:36,140
‫Y el otro iba a ser un vector F llamado dirección de tiro.

72
00:04:37,490 --> 00:04:39,180
‫Y esos van a ser pasados.

73
00:04:39,200 --> 00:04:42,170
‫Primero vamos a tener el golpe, luego la dirección del disparo.

74
00:04:44,090 --> 00:04:46,430
‫Y luego punto y coma al final.

75
00:04:46,880 --> 00:04:49,370
‫Así que eso hará que sea un poco más fácil.

76
00:04:49,640 --> 00:04:55,940
‫Sin embargo, no digo que también necesitemos el controlador propietario y no quiero que el rastro del arma

77
00:04:55,940 --> 00:04:59,680
‫sea responsable del controlador propietario u olvide el control propietario.

78
00:04:59,690 --> 00:05:03,230
‫Eso no parece que sea responsabilidad de un rastro de armas hacer eso.

79
00:05:03,560 --> 00:05:05,530
‫Suena bien que tenga éxito.

80
00:05:05,540 --> 00:05:10,480
‫Suena bien para obtener una dirección de disparo, pero voy a trazar la línea para obtener el controlador propietario.

81
00:05:10,490 --> 00:05:17,630
‫Entonces, para eso, lo pondré, pondré todo este código en otra función a la que ambos

82
00:05:17,630 --> 00:05:18,560
‫puedan llamar.

83
00:05:19,130 --> 00:05:23,720
‫Así que va a ser una función que devuelve un controlador.

84
00:05:24,970 --> 00:05:25,540
‫Estrella.

85
00:05:26,590 --> 00:05:30,610
‫Y lo llamaremos el controlador del propietario del jet.

86
00:05:30,820 --> 00:05:32,080
‫Y podemos hacer que a.

87
00:05:32,770 --> 00:05:38,710
‫Como sabemos, no está destinado a cambiar ninguna de las variables en nuestra clase de armas.

88
00:05:39,130 --> 00:05:40,740
‫Vamos a crear esa implementación.

89
00:05:40,750 --> 00:05:47,380
‫Simplemente traiga la implementación del rastro del arma, corrija cualquier sangría si es necesario.

90
00:05:47,380 --> 00:05:52,030
‫Y vamos a seguir adelante y simplemente devolver el control del propietario.

91
00:05:52,040 --> 00:05:53,860
‫Así que no hay necesidad de hacer una revisión de uñas aquí.

92
00:05:54,310 --> 00:05:57,700
‫Ese control de uñas que necesitamos hacer en la función que lo está usando.

93
00:05:58,300 --> 00:06:02,920
‫Así que mencionaremos que tampoco necesitamos establecer una variable aquí.

94
00:06:02,920 --> 00:06:04,630
‫Podemos seguir adelante y regresar.

95
00:06:06,620 --> 00:06:08,600
‫Así que va a ser bastante sencillo.

96
00:06:08,600 --> 00:06:10,820
‫Tengo un controlador, pero no completamente.

97
00:06:11,300 --> 00:06:14,820
‫Y luego vamos a configurar la variable en el rastreo de armas.

98
00:06:14,840 --> 00:06:19,310
‫Entonces, tengo un controlador que obtendrá un controlador propio así.

99
00:06:20,440 --> 00:06:26,890
‫Luego hacemos un retorno nulo a un retorno temprano nulo en el rastreo de armas, que por cierto, necesita devolver un valor

100
00:06:26,890 --> 00:06:30,190
‫booleano porque el rastreo de armas está devolviendo un valor booleano.

101
00:06:30,820 --> 00:06:36,280
‫Así que podemos continuar y devolver falso aquí porque si no podemos obtener un controlador propio, no podemos rastrear el arma,

102
00:06:36,280 --> 00:06:38,290
‫por lo tanto, no podemos golpear nada.

103
00:06:39,280 --> 00:06:42,640
‫Y luego también necesitamos ese controlador propietario más arriba.

104
00:06:43,870 --> 00:06:47,590
‫Donde tenemos un actor de éxito, estamos haciendo daño.

105
00:06:48,310 --> 00:06:54,250
‫Y básicamente lo que queremos hacer aquí es obtener el control del propietario aquí dentro de nuestro exitoso actor.

106
00:06:54,250 --> 00:06:56,500
‫Entonces, si golpeamos a un actor, obtenemos el controlador propietario nuevamente.

107
00:06:56,890 --> 00:07:00,220
‫Ahora, sé que hay un poco de rastreadores de armas llamando.

108
00:07:00,220 --> 00:07:03,160
‫Súbete a un controlador y luego lo haremos de nuevo si golpeamos a un actor.

109
00:07:03,640 --> 00:07:06,250
‫Pero eso solo sucederá cada vez que golpeemos a un actor.

110
00:07:06,280 --> 00:07:12,610
‫Así que no me importa volver a calcular eso dos veces porque solo hará que el código sea un poco más

111
00:07:12,610 --> 00:07:16,940
‫legible sin tener que almacenar variables y estados que podrían perder la sincronización.

112
00:07:16,960 --> 00:07:17,850
‫Ahí vas.

113
00:07:17,860 --> 00:07:24,160
‫Ahora tenemos el controlador propietario que necesitamos para recibir daños y el gatillo de Apple se ve mucho mejor.

114
00:07:24,250 --> 00:07:25,210
‫Así que eso es todo por esta conferencia.

115
00:07:25,210 --> 00:07:25,750
‫Uno rápido.

116
00:07:25,750 --> 00:07:30,910
‫Simplemente refactorizando nuestro gatillo para que tengamos una buena base para trabajar en la próxima lección.

117
00:07:31,060 --> 00:07:31,660
‫Y voy a ver eso.

118
00:07:32,770 --> 00:07:37,030
‫Ah, y parece que hice un poco de booboo aquí y se ponen en un controlador.

119
00:07:37,420 --> 00:07:42,580
‫Si intenta y compila, no hará nada porque este valor de retorno no está devolviendo un

120
00:07:42,580 --> 00:07:43,180
‫puntero.

121
00:07:43,210 --> 00:07:47,590
‫Entonces queremos devolver un puntero nulo en este caso de inmediato.

122
00:07:47,590 --> 00:07:50,350
‫Básicamente, no podemos obtener un tirón y luego no podemos obtener un controlador.

123
00:07:50,350 --> 00:07:51,820
‫Así que devolvemos un puntero nulo.

