﻿1
00:00:04,080 --> 00:00:05,890
‫Hola y bienvenido de nuevo.

2
00:00:05,910 --> 00:00:11,990
‫Ahora estamos moviendo nuestro tanque hacia adelante y hacia atrás, pero no tenemos forma de dirigir el tanque.

3
00:00:12,000 --> 00:00:18,260
‫Entonces, en este video, vamos a trabajar para girar el tanque usando algo llamado rotación local.

4
00:00:18,270 --> 00:00:23,040
‫Este es el análogo rotacional para agregar el desplazamiento local del actor.

5
00:00:23,070 --> 00:00:29,850
‫Ahora agregar el desplazamiento local del actor tenía múltiples parámetros de entrada y solo pasamos el primero ya que los

6
00:00:29,850 --> 00:00:31,470
‫otros tres eran opcionales.

7
00:00:31,650 --> 00:00:35,010
‫Pero uno de esos otros tres tenía que ver con barrer.

8
00:00:35,010 --> 00:00:41,190
‫Y vamos a discutir un poco sobre el barrido antes de continuar implementando la rotación.

9
00:00:41,190 --> 00:00:45,660
‫Así que estoy de vuelta en la documentación de ADD Actor Local Offset.

10
00:00:45,660 --> 00:00:48,720
‫Así que echemos un vistazo a estos parámetros de entrada una vez más.

11
00:00:48,750 --> 00:00:52,770
‫El segundo se llama B Sweep y es un booleano.

12
00:00:53,160 --> 00:00:59,790
‫Ahora, si nos desplazamos hacia abajo un poco más y leemos la información aquí para el barrido

13
00:00:59,790 --> 00:01:07,140
‫B, dice Si barrimos hacia la ubicación de destino, provocando superposiciones en el camino y deteniéndonos antes del objetivo

14
00:01:07,140 --> 00:01:08,820
‫si algo lo bloquea.

15
00:01:09,180 --> 00:01:14,790
‫También continúa diciendo que solo se barre el componente raíz y se verifica si bloquea la colisión.

16
00:01:14,790 --> 00:01:17,430
‫Los componentes secundarios se mueven sin barrer.

17
00:01:17,700 --> 00:01:20,820
‫Si la colisión está desactivada, esto no tiene ningún efecto.

18
00:01:21,060 --> 00:01:28,440
‫Entonces, hablemos de lo que esto significa ahora en la programación de juegos, el barrido es una técnica realizada por el motor, siempre

19
00:01:28,440 --> 00:01:30,390
‫que el barrido esté habilitado.

20
00:01:30,570 --> 00:01:38,370
‫Si tenemos un objeto en movimiento como una esfera representada por este círculo, cada cuadro como esta esfera se

21
00:01:38,370 --> 00:01:42,090
‫mueve, el motor está realizando comprobaciones de barrido.

22
00:01:42,090 --> 00:01:49,740
‫Esto significa que está verificando si ese movimiento para este marco en particular habría resultado en una superposición

23
00:01:49,740 --> 00:01:51,420
‫entre dos objetos.

24
00:01:51,630 --> 00:01:55,560
‫Así que tengo este bloque aquí representado por este rectángulo.

25
00:01:56,010 --> 00:01:59,580
‫Ahora consideremos que estos son los únicos dos objetos en el mundo.

26
00:01:59,580 --> 00:02:06,600
‫Entonces, mientras el barrido está habilitado a medida que la esfera se mueve hacia el objeto, el motor

27
00:02:06,600 --> 00:02:09,330
‫verifica si estos dos objetos se superponen.

28
00:02:09,570 --> 00:02:16,410
‫Ahora, a medida que la esfera continúa moviéndose, digamos que durante uno de estos fotogramas, la esfera se habría movido

29
00:02:16,410 --> 00:02:19,500
‫de tal manera que se superpone al otro objeto.

30
00:02:19,500 --> 00:02:26,760
‫Ahora, lo que hace el barrido habilitado es que el motor detectará esta superposición y moverá esa esfera

31
00:02:26,790 --> 00:02:31,920
‫hacia ese marco en particular para que nunca penetre en el objeto.

32
00:02:31,950 --> 00:02:35,460
‫Ahora nunca vemos que la esfera penetre en el objeto.

33
00:02:35,490 --> 00:02:40,530
‫El motor detecta esa superposición antes de que se implemente realmente el movimiento.

34
00:02:40,530 --> 00:02:46,020
‫Entonces, el resultado es que vemos que la esfera se detiene justo antes de superponerse.

35
00:02:46,020 --> 00:02:52,710
‫Entonces, si este rectángulo fuera una pared, por ejemplo, la esfera se detendría en la superficie de la pared.

36
00:02:52,710 --> 00:02:55,170
‫Eso es lo que consigue barrer para nosotros.

37
00:02:55,170 --> 00:03:00,030
‫Ahora la documentación dice que si la colisión está desactivada, esto no tiene efecto.

38
00:03:00,030 --> 00:03:04,590
‫Por lo tanto, la colisión debe estar habilitada para que funcione el barrido.

39
00:03:04,740 --> 00:03:12,090
‫Entonces, de vuelta aquí en tanks CP en la función de movimiento, aquí está nuestra llamada para agregar el desplazamiento local del

40
00:03:12,120 --> 00:03:19,110
‫actor y, si queremos, podemos pasar otro parámetro de entrada aquí, el segundo es el booleano de barrido para que

41
00:03:19,110 --> 00:03:20,310
‫podamos pasar aquí.

42
00:03:20,310 --> 00:03:24,540
‫Entonces, compilemos esto y veamos el efecto de habilitar el barrido.

43
00:03:24,540 --> 00:03:30,720
‫Ahora bien, si pulsamos play e intentamos movernos a través de una pared, por ejemplo, veremos que nos movemos justo a través de

44
00:03:30,720 --> 00:03:31,560
‫la pared.

45
00:03:31,560 --> 00:03:34,020
‫Así que algo no está funcionando del todo aquí.

46
00:03:34,020 --> 00:03:38,280
‫Ahora veamos cuál es ese componente de ruta para el tanque del estanque de BP.

47
00:03:38,280 --> 00:03:41,730
‫Recuerde, usamos el componente de la cápsula para la ruta.

48
00:03:41,730 --> 00:03:45,570
‫Lo mismo ocurre con los componentes de la cápsula seleccionados en el tanque de estanque BP.

49
00:03:45,570 --> 00:03:51,690
‫Vayamos al panel de detalles y desplácese hacia abajo y veremos aquí una sección llamada Colisión.

50
00:03:51,690 --> 00:03:55,860
‫Y aquí vemos Collision Presets y tiene un menú desplegable.

51
00:03:55,860 --> 00:03:57,420
‫Así que ampliemos eso.

52
00:03:57,420 --> 00:04:05,010
‫Ahora, los ajustes preestablecidos de colisión se pueden configurar en cualquier cantidad de opciones y, de forma predeterminada, vemos superposición de todas las dinámicas.

53
00:04:05,010 --> 00:04:08,280
‫Ahora, dependiendo de la versión de Unreal Engine que estés usando.

54
00:04:08,280 --> 00:04:11,580
‫Es posible que vea algo más aquí, pero podemos cambiar esto.

55
00:04:11,580 --> 00:04:18,750
‫Si seleccionamos el menú desplegable y elegimos bloquear todo dinámico, entonces las opciones atenuadas a continuación cambian.

56
00:04:18,750 --> 00:04:25,470
‫Recuerde que estábamos superponiendo todas las dinámicas y aquí vemos tres columnas de casillas de verificación.

57
00:04:25,590 --> 00:04:33,240
‫Estas son respuestas de colisión y la columna de la izquierda muestra una lista de tipos de objetos de colisión.

58
00:04:33,240 --> 00:04:37,860
‫Entonces, cualquier componente dado tiene su propio tipo de objeto de colisión.

59
00:04:37,860 --> 00:04:42,840
‫Observe que podemos ver el tipo de objeto para la cápsula establecida en dinámica mundial.

60
00:04:42,840 --> 00:04:48,600
‫Y cuando cambiamos los ajustes preestablecidos de colisión para bloquear todas las dinámicas, verá que todas las

61
00:04:48,600 --> 00:04:54,450
‫respuestas de colisión se verifican para bloquear en respuesta a todos los demás tipos de objetos de colisión.

62
00:04:54,450 --> 00:04:59,160
‫Entonces, presionemos play y veamos qué sucede cuando tratamos de pasar cosas.

63
00:04:59,160 --> 00:05:03,630
‫Verá que nos detenemos justo antes de superponernos.

64
00:05:03,710 --> 00:05:04,860
‫Los otros estanques.

65
00:05:04,880 --> 00:05:13,520
‫Ahora, si muevo el tanque para que podamos intentar superponernos con la pared y rodear los otros

66
00:05:13,520 --> 00:05:14,340
‫estanques.

67
00:05:14,360 --> 00:05:17,900
‫Ahora, si presiono play, bloqueo la pared también.

68
00:05:17,900 --> 00:05:26,330
‫Entonces, este bloque preestablecido de colisión, todo dinámico, establece la respuesta de colisión para bloquear todos los demás tipos de objetos.

69
00:05:26,330 --> 00:05:32,900
‫Y siempre puede ver el tipo de objeto de colisión de un componente en particular seleccionándolo en el panel de componentes

70
00:05:32,900 --> 00:05:39,590
‫y desplazándose hacia abajo hasta la sección de colisión en el panel de detalles y abriendo el menú desplegable para Ajustes

71
00:05:39,590 --> 00:05:40,790
‫preestablecidos de colisión.

72
00:05:40,790 --> 00:05:47,540
‫Tengo la malla base seleccionada y su tipo de objeto es dinámico mundial y está configurado para bloquear todo.

73
00:05:47,540 --> 00:05:54,350
‫Entonces ahora vemos que el barrido está funcionando ya que configuramos nuestros ajustes preestablecidos de colisión para que la composición de la cápsula bloquee

74
00:05:54,350 --> 00:05:55,490
‫toda la dinámica.

75
00:05:55,490 --> 00:06:02,720
‫Y vimos en la documentación que solo el componente raíz se barre y se verifica si bloquea la colisión.

76
00:06:02,720 --> 00:06:06,140
‫Por lo tanto, realmente no importa en qué estén configurados los otros componentes.

77
00:06:06,170 --> 00:06:10,790
‫Solo estamos comprobando si el componente raíz está bloqueando algo.

78
00:06:10,790 --> 00:06:15,800
‫Ahora, un problema que ha hecho tropezar a algunos estudiantes es que no pueden moverse tan pronto como configuran la

79
00:06:15,800 --> 00:06:17,510
‫cápsula para bloquear toda la dinámica.

80
00:06:17,810 --> 00:06:23,750
‫Ahora, una de las razones de esto podría ser que su cápsula se superponga con el piso.

81
00:06:23,780 --> 00:06:28,820
‫Si la cápsula se superpone con el piso, no podrá moverse porque el motor no

82
00:06:28,820 --> 00:06:35,390
‫permitirá que su tanque se mueva si el componente de la cápsula se superpone con algo que está configurado para bloquear.

83
00:06:35,390 --> 00:06:41,240
‫Entonces, una solución fácil para esto sería asegurarse de que su cápsula no se superponga con el piso.

84
00:06:41,720 --> 00:06:49,370
‫Ahora, puedes entrar en tu tanque de BP y asegurarte de que tu cápsula esté justo encima de las ruedas aquí.

85
00:06:49,370 --> 00:06:52,640
‫Voy a ir a la vista ortográfica.

86
00:06:53,720 --> 00:06:56,840
‫Y seleccione mi malla base y bájela.

87
00:06:56,840 --> 00:07:00,980
‫Entonces, las ruedas están justo debajo del componente de la cápsula.

88
00:07:01,190 --> 00:07:06,470
‫Entonces, si su malla está justo en el piso y la cápsula está justo encima de la malla.

89
00:07:06,680 --> 00:07:09,010
‫Deberías poder moverte.

90
00:07:09,020 --> 00:07:12,110
‫Así que voy a darle al play y ahí vamos.

91
00:07:12,740 --> 00:07:17,620
‫Así que ahora que nos hemos quitado de en medio, es hora de comenzar a implementar la rotación.

92
00:07:17,630 --> 00:07:19,520
‫Volvamos a la configuración de nuestro proyecto.

93
00:07:19,520 --> 00:07:29,060
‫Así que vamos a editar la configuración del proyecto, nos desplazamos hacia abajo hasta la entrada y en la sección de entrada tenemos nuestras asignaciones de ejes.

94
00:07:29,060 --> 00:07:30,710
‫Ahora ya nos hemos ocupado.

95
00:07:30,710 --> 00:07:31,790
‫Muévete hacia adelante.

96
00:07:31,790 --> 00:07:40,220
‫Es hora de ocuparse del siguiente llamado Giro y Giro tiene D y A asignados, donde D tiene una escala de

97
00:07:40,220 --> 00:07:44,060
‫uno y A tiene una escala de uno negativo.

98
00:07:44,060 --> 00:07:48,080
‫Nos gustaría usar D y AX para rotar el tanque.

99
00:07:48,170 --> 00:07:54,470
‫Entonces, para vincular una función al mapeo del eje de giro, necesitamos una función para vincular.

100
00:07:54,470 --> 00:08:02,330
‫Así que estamos de vuelta en el código de V y voy a entrar en el archivo del tanque para que podamos crear una función para enlazar con

101
00:08:02,330 --> 00:08:04,100
‫ese mapeo del eje de giro.

102
00:08:04,100 --> 00:08:08,630
‫Ahora voy a llamar a esta función nula girar y mover.

103
00:08:08,660 --> 00:08:12,560
‫Necesita un parámetro de entrada flotante y llamaremos a este valor.

104
00:08:12,560 --> 00:08:18,530
‫Así que hemos declarado esta función, definámosla y agreguemos CP y la pondré justo debajo de la

105
00:08:18,530 --> 00:08:19,790
‫función de movimiento.

106
00:08:19,790 --> 00:08:26,600
‫Así que le di un cuerpo de función y necesito el nombre de la clase junto con los dos puntos justo antes del nombre

107
00:08:26,600 --> 00:08:27,590
‫de la función.

108
00:08:27,590 --> 00:08:29,270
‫Ahora tenemos una función adecuada.

109
00:08:29,270 --> 00:08:31,400
‫Ahora, esto no es lo único que tenemos que hacer.

110
00:08:31,430 --> 00:08:36,590
‫Necesitamos asegurarnos de que esta función esté vinculada al mapeo de ejes llamado giro.

111
00:08:36,590 --> 00:08:44,000
‫Lo hacemos en el componente de entrada del reproductor de configuración y lo hacemos igual que hicimos con el mapeo del eje de avance.

112
00:08:44,000 --> 00:08:51,290
‫Así que vamos a decir componente de entrada del jugador, vamos a usar el operador de flecha y el eje de enlace.

113
00:08:52,100 --> 00:08:58,250
‫Ahora, el primer parámetro será el nombre del mapeo del eje envuelto en una macro de texto.

114
00:08:58,340 --> 00:09:02,420
‫Así que vamos a decir girar, ya que ese era el nombre del mapeo de ejes.

115
00:09:02,420 --> 00:09:05,180
‫El siguiente es el objeto para el que vinculamos la función.

116
00:09:05,180 --> 00:09:10,100
‫Podemos pasar esto y finalmente pasamos la función que nos gustaría vincular nuevamente.

117
00:09:10,100 --> 00:09:14,600
‫Necesitamos la dirección del operador y será un turno de tanque.

118
00:09:14,600 --> 00:09:16,550
‫Así que es tan fácil como eso.

119
00:09:16,580 --> 00:09:21,200
‫Hemos vinculado la función de giro al mapeo del eje de giro.

120
00:09:21,500 --> 00:09:26,330
‫Lo único que queda es hacer algo en la función de giro.

121
00:09:26,330 --> 00:09:32,390
‫Ahora hemos visto que tenemos el desplazamiento local del actor AGREGAR, pero hay una rotación análoga a esta función

122
00:09:32,390 --> 00:09:35,240
‫y se llama rotación local del actor AGREGAR.

123
00:09:35,240 --> 00:09:41,600
‫Lo que esto hace es agregar una rotación local al actor como sugiere su nombre, y verá que hay

124
00:09:41,600 --> 00:09:47,330
‫dos versiones diferentes de la función, una que toma un rotador F y otra que toma algo

125
00:09:47,330 --> 00:09:48,530
‫llamado F quad.

126
00:09:48,530 --> 00:09:51,140
‫Vamos a utilizar la versión que lleva un rotador F.

127
00:09:51,140 --> 00:09:53,480
‫Se llama rotación Delta.

128
00:09:53,480 --> 00:10:00,800
‫Y al igual que ADD Actor Local offset, también puede tomar un parámetro de barrido y los mismos otros dos parámetros de

129
00:10:00,800 --> 00:10:03,170
‫entrada como add actor local offset.

130
00:10:03,170 --> 00:10:08,720
‫Y estos últimos tres parámetros de entrada son opcionales, al igual que agregar el desplazamiento local del actor.

131
00:10:08,720 --> 00:10:13,060
‫Entonces, en lugar de un vector F, vamos a pasar un rotador F.

132
00:10:13,070 --> 00:10:20,210
‫Ahora, de vuelta aquí en la función de giro, si creamos un rotador F y lo llamamos rotación Delta, veremos que

133
00:10:20,210 --> 00:10:26,960
‫si hacemos clic con el botón derecho en el rotador F y vamos a la definición, nos llevará al rotador

134
00:10:26,960 --> 00:10:30,410
‫y veremos tres variables miembro públicas aquí de tipo float.

135
00:10:30,410 --> 00:10:37,250
‫Ahora, al igual que el rotador F vector F tiene estos tres componentes solo en lugar de X, Y y Z,

136
00:10:37,250 --> 00:10:39,140
‫tenemos cabeceo, guiñada y balanceo.

137
00:10:39,140 --> 00:10:42,050
‫Ahora, la guiñada es el componente que nos interesa.

138
00:10:42,050 --> 00:10:46,940
‫Dice rotación alrededor del eje superior entre paréntesis alrededor del eje Z.

139
00:10:46,940 --> 00:10:52,370
‫Y ese es el único tipo de rotación que nos interesa rotar alrededor del eje Z.

140
00:10:52,370 --> 00:10:54,500
‫Así es como podemos dirigir nuestro tanque.

141
00:10:54,500 --> 00:11:00,860
‫Ahora, solo voy a señalarles que también hay múltiples constructores para el rotador F, y que el valor

142
00:11:00,860 --> 00:11:06,110
‫predeterminado nuevamente dice que no hay inicialización, al igual que con el vector F.

143
00:11:06,110 --> 00:11:12,410
‫Entonces, podemos usar el que toma un solo valor flotante y todos los componentes se inicializarán con ese

144
00:11:12,410 --> 00:11:13,190
‫valor flotante.

145
00:11:13,220 --> 00:11:18,560
‫Hay uno con tres valores flotantes y puede echar un vistazo y ver algunos de los otros.

146
00:11:18,560 --> 00:11:25,820
‫Ahora, también señalaré que hay un rotador cero y, por cierto, este es un rotador cero estático.

147
00:11:25,820 --> 00:11:34,880
‫Es por eso que podemos volver al CP del tanque y decir algo como es igual a F rotador cero rotador cero rotador es una variable

148
00:11:34,880 --> 00:11:42,170
‫miembro estática y puede acceder a funciones miembro estáticas y variables como esta especificando el nombre de la clase con

149
00:11:42,170 --> 00:11:47,960
‫el operador de resolución de alcance y haciendo referencia a esa estática variable o función por

150
00:11:47,960 --> 00:11:48,440
‫nombre.

151
00:11:48,440 --> 00:11:50,180
‫Eso es lo que estamos haciendo aquí contigo.

152
00:11:50,180 --> 00:11:53,060
‫La estática del juego obtiene segundos delta mundiales es una estática.

153
00:11:53,310 --> 00:11:59,670
‫Función, lo que significa que no necesitamos una instancia real de la clase estática del juego para que

154
00:11:59,670 --> 00:12:02,230
‫podamos acceder a esa función estática.

155
00:12:02,250 --> 00:12:04,160
‫Simplemente ya existe.

156
00:12:04,170 --> 00:12:06,930
‫Lo mismo con rotador cero y vector cero.

157
00:12:07,080 --> 00:12:14,010
‫Así que voy a cerrar el rotador h y tenemos esta rotación delta y se inicializa en un rotador

158
00:12:14,010 --> 00:12:14,700
‫cero.

159
00:12:14,730 --> 00:12:20,280
‫Ahora su tono y rol se ponen a cero al igual que X, Y y Z se ponen a cero para el vector F.

160
00:12:20,280 --> 00:12:22,920
‫Así que vamos a tener que cambiar ese componente.

161
00:12:22,920 --> 00:12:29,460
‫Entonces, al igual que hice con nuestra ubicación delta en la función MOV, creemos un pseudocódigo para las rotaciones

162
00:12:29,460 --> 00:12:30,120
‫delta.

163
00:12:30,120 --> 00:12:36,690
‫Sí, vamos a querer que todos estén configurados en un valor escalado por el tiempo Delta, por supuesto, porque queremos que este giro

164
00:12:36,690 --> 00:12:42,570
‫sea independiente de la velocidad de fotogramas, pero también necesitamos algún tipo de velocidad de giro que podamos llamar esta

165
00:12:42,570 --> 00:12:43,560
‫velocidad de giro.

166
00:12:43,560 --> 00:12:49,890
‫Entonces, una vez que hayamos configurado eso, sí, podemos agregar esa rotación local que rotará al actor de

167
00:12:49,890 --> 00:12:54,630
‫acuerdo con el rotador F de cada cuadro y se escalará por valor.

168
00:12:54,630 --> 00:12:59,640
‫Entonces será cero si no estamos presionando ninguna tecla y tendrá un valor si estamos presionando DX

169
00:12:59,640 --> 00:13:00,320
‫y ax.

170
00:13:00,330 --> 00:13:02,190
‫Así que ahora tienes un desafío.

171
00:13:02,190 --> 00:13:06,090
‫Esto funcionará igual que agregar el desplazamiento local del actor.

172
00:13:06,120 --> 00:13:09,000
‫La única diferencia es que estamos rotando al actor ahora.

173
00:13:09,000 --> 00:13:14,820
‫Entonces, como necesitamos algún tipo de velocidad de giro para rotar al actor, creará una variable de velocidad de giro,

174
00:13:14,820 --> 00:13:20,550
‫hará que sea flotante y colóquela en la sección privada justo al lado de la variable de velocidad.

175
00:13:20,550 --> 00:13:25,560
‫Exponga esta variable con su propiedad y elija los nuevos especificadores de propiedad apropiados.

176
00:13:25,560 --> 00:13:32,490
‫Ahora, en la función de giro, va a configurar la rotación Delta en particular, nos preocupamos por que

177
00:13:32,490 --> 00:13:41,280
‫su componente establezca el valor igual al valor multiplicado por nuestra variable de tasa de giro y también multiplique por el tiempo delta y

178
00:13:41,280 --> 00:13:48,780
‫luego estará listo para llamar a agregar actor local. rotación que pasa en este rotador f ahora para el segundo parámetro,

179
00:13:48,780 --> 00:13:56,880
‫continúe y pase en verdadero para la entrada de barrido B, ya que queremos barrer al girar, pausar el video e implementar

180
00:13:56,880 --> 00:13:59,190
‫la rotación para el tanque ahora.

181
00:14:02,110 --> 00:14:02,500
‫Bueno.

182
00:14:02,500 --> 00:14:04,630
‫Así que esto va a ser bastante simple.

183
00:14:04,630 --> 00:14:07,360
‫Solo necesitamos una variable de tasa de giro.

184
00:14:07,390 --> 00:14:14,440
‫Ahora voy a entrar en el tanque justo por debajo de la velocidad y crear una velocidad de giro flotante.

185
00:14:14,590 --> 00:14:18,640
‫Ahora probablemente inicialice esto con algún valor y eso está bien.

186
00:14:18,640 --> 00:14:24,040
‫Si es diferente de lo que estoy eligiendo, optaré por 45 F y veré cómo funciona.

187
00:14:24,040 --> 00:14:29,150
‫Pero vamos a exponer esto a planos para que podamos cambiarlo mientras estamos desarrollando.

188
00:14:29,170 --> 00:14:35,620
‫Ahora me gustaría editarlo en cualquier lugar y lo colocaré en la misma categoría de movimiento que la velocidad.

189
00:14:35,620 --> 00:14:41,320
‫Así que voy a seguir adelante y robar esta propiedad suya y pegarla aquí arriba, girar a la derecha para que se establezca

190
00:14:41,320 --> 00:14:42,180
‫en cualquier lugar.

191
00:14:42,190 --> 00:14:45,280
‫Movimiento de categoría ahora y tanque CP.

192
00:14:45,310 --> 00:14:48,190
‫Estoy listo para dar el sí a la rotación Delta.

193
00:14:48,190 --> 00:14:50,320
‫Así que vamos a decir rotación delta.

194
00:14:50,650 --> 00:14:51,400
‫Sí.

195
00:14:51,790 --> 00:14:57,060
‫Y lo vamos a establecer igual a los tiempos de valor, los tiempos de tasa de giro, el tiempo delta.

196
00:14:57,070 --> 00:15:04,120
‫Y, por supuesto, podemos obtener el tiempo delta con las estáticas de juego U, obtener los segundos delta mundiales que pasan en esto

197
00:15:04,120 --> 00:15:06,340
‫como el objeto de contexto mundial.

198
00:15:06,460 --> 00:15:08,350
‫Así que voy a pegar eso allí mismo.

199
00:15:08,470 --> 00:15:12,220
‫Ahora sé que mi pseudocódigo no coincide exactamente.

200
00:15:12,220 --> 00:15:13,270
‫Está en el orden incorrecto.

201
00:15:13,270 --> 00:15:14,830
‫El tiempo delta está en el medio aquí.

202
00:15:14,830 --> 00:15:20,440
‫No importa porque al multiplicar tres valores juntos, puedes multiplicarlos en cualquier orden y aun así

203
00:15:20,440 --> 00:15:21,940
‫obtener el mismo resultado.

204
00:15:21,940 --> 00:15:27,460
‫Entonces, en caso de que te lo estés preguntando, las matemáticas seguirán siendo las mismas si multiplicas estos

205
00:15:27,460 --> 00:15:29,350
‫tres valores en un orden diferente.

206
00:15:29,350 --> 00:15:30,910
‫Así que no te preocupes demasiado por eso.

207
00:15:30,910 --> 00:15:32,830
‫Ahora tenemos rotación delta.

208
00:15:32,830 --> 00:15:41,860
‫Lo único que queda por hacer es llamar a la rotación local de agregar actor, y estamos pasando la rotación Delta y para la

209
00:15:41,950 --> 00:15:47,290
‫segunda entrada vamos a pasar en verdadero para habilitar el barrido al rotar.

210
00:15:47,290 --> 00:15:48,670
‫Así que vamos a compilar esto.

211
00:15:48,820 --> 00:15:50,740
‫Muy bien, ya estamos compilados.

212
00:15:50,740 --> 00:15:57,190
‫Puede notar en un par de los siguientes videos que faltan el vector cero y el rotador cero en estas

213
00:15:57,190 --> 00:15:57,700
‫líneas.

214
00:15:57,700 --> 00:16:03,010
‫Eso es porque comencé con estos inicializados y luego me di cuenta de que probablemente

215
00:16:03,010 --> 00:16:05,890
‫deberían inicializarse al menos con valores cero.

216
00:16:05,890 --> 00:16:12,070
‫Así que no se preocupe si ve estas líneas más adelante con este aspecto inicializado, mantenga su vector cero

217
00:16:12,070 --> 00:16:16,690
‫y su rotador cero y verá que capto esto en un video futuro cercano.

218
00:16:16,690 --> 00:16:17,770
‫Así que no te preocupes.

219
00:16:17,770 --> 00:16:21,430
‫Si no ve estos de inicialización, deberían estar allí.

220
00:16:21,430 --> 00:16:23,050
‫Y estamos de vuelta en el editor.

221
00:16:23,050 --> 00:16:30,970
‫Vamos a darle al play y voy a usar la tecla D y estamos girando y la tecla A me gira hacia el

222
00:16:30,970 --> 00:16:33,790
‫otro lado y también podemos avanzar y retroceder.

223
00:16:33,790 --> 00:16:39,570
‫Entonces, ahora que podemos rotar y avanzar, tenemos la capacidad de movernos por el mundo.

224
00:16:39,580 --> 00:16:41,890
‫Este es un gran hito.

225
00:16:41,890 --> 00:16:47,620
‫Ahora me muevo bastante lento, pero está bien porque puedo seleccionar mi tanque y puedo buscar la

226
00:16:47,620 --> 00:16:53,230
‫categoría de movimiento y cambiar la velocidad de giro a algo más alto, como 90.

227
00:16:53,230 --> 00:16:54,760
‫Así que sigamos adelante y presionemos reproducir.

228
00:16:55,460 --> 00:16:57,630
‫Y eso es bastante más rápido.

229
00:16:57,650 --> 00:17:00,110
‫Ahora, si crees que esto todavía es un poco lento.

230
00:17:00,140 --> 00:17:02,330
‫Por supuesto, puede ajustarlos.

231
00:17:02,330 --> 00:17:05,570
‫Así que voy a seleccionar el tanque de nuevo.

232
00:17:05,570 --> 00:17:08,090
‫Y en lugar de 400, hagámoslo 800.

233
00:17:08,090 --> 00:17:08,720
‫¿Por que no?

234
00:17:08,750 --> 00:17:11,840
‫En lugar de 90, vamos a decir 120.

235
00:17:12,260 --> 00:17:16,160
‫Ahora, si presiono play, soy bastante más rápido.

236
00:17:16,160 --> 00:17:18,800
‫Así que esto se ve muy, muy bien.

237
00:17:18,800 --> 00:17:23,390
‫Entonces, mirando hacia atrás en el plano de la sección, ahora tenemos un tanque que puede moverse por todo el mundo.

238
00:17:23,390 --> 00:17:29,300
‫Ese primer punto definitivamente está marcado y estamos manejando el movimiento WASD.

239
00:17:29,300 --> 00:17:32,510
‫Todavía no estamos manejando la entrada del mouse, pero llegaremos a eso.

240
00:17:32,510 --> 00:17:35,870
‫Pero estamos un paso más cerca de completar este juego.

241
00:17:35,870 --> 00:17:42,170
‫Entonces, en resumen, aprendimos qué es el barrido y cómo podemos habilitarlo para que nuestros objetos no se crucen

242
00:17:42,170 --> 00:17:43,130
‫entre sí.

243
00:17:43,130 --> 00:17:49,760
‫Agregamos una rotación local de actores y lo hicimos implementando una tasa de rotación que podíamos ajustar en los

244
00:17:49,760 --> 00:17:50,210
‫detalles.

245
00:17:50,210 --> 00:17:53,750
‫Panel en el editor para facilitar un poco el desarrollo.

246
00:17:53,750 --> 00:17:54,500
‫Gran trabajo.

247
00:17:54,500 --> 00:17:56,480
‫Ahora estamos moviendo el tanque por todo el mundo.

248
00:17:56,480 --> 00:17:57,770
‫Te veré en el próximo video.

