﻿1
00:00:04,390 --> 00:00:05,560
‫Hola y bienvenido.

2
00:00:05,560 --> 00:00:11,230
‫En esta lección vamos a hacer plataformas giratorias y móviles.

3
00:00:11,230 --> 00:00:17,560
‫Vamos a hacer esto aprendiendo sobre el tipo de rotador F en C++ para que podamos agregar

4
00:00:17,560 --> 00:00:20,950
‫un poco más de otro elemento a nuestro rompecabezas.

5
00:00:20,950 --> 00:00:23,950
‫Vamos a sumergirnos y descubrir cómo funciona esto.

6
00:00:24,280 --> 00:00:28,300
‫Así que hablemos de cómo completar nuestra función de rotación de plataforma.

7
00:00:28,510 --> 00:00:34,930
‫Entonces, para hacer la rotación, es muy similar a la forma en que hacemos la ubicación y tenemos funciones muy

8
00:00:34,930 --> 00:00:35,350
‫similares.

9
00:00:35,350 --> 00:00:43,240
‫Podemos llamar en lugar de llamar, obtener la ubicación del actor, podemos llamar, obtener la rotación del actor en su lugar.

10
00:00:43,240 --> 00:00:49,270
‫Y si voy y pongo paréntesis al final de esta línea y solo paso el cursor sobre

11
00:00:49,270 --> 00:00:55,630
‫la función, entonces Visual Studio IntelliSense nos mostrará que el valor de retorno de esto es un rotador F.

12
00:00:55,630 --> 00:01:02,110
‫Hemos usado el vector F cuando trabajamos con ubicaciones y hemos hablado de los rotadores en las secciones

13
00:01:02,110 --> 00:01:02,830
‫anteriores.

14
00:01:02,830 --> 00:01:07,090
‫Así que echemos un vistazo a poner este rotador F en una variable local.

15
00:01:07,090 --> 00:01:14,920
‫Así que el tipo va a ser F rotator y vamos a llamar a esto la rotación actual igual a la rotación del actor get, pon

16
00:01:14,920 --> 00:01:17,680
‫un punto y coma al final de la línea.

17
00:01:17,680 --> 00:01:20,260
‫También voy a eliminar la declaración de registro porque ya no la necesitamos.

18
00:01:20,260 --> 00:01:25,450
‫Y luego, lo que queremos hacer es esencialmente exactamente lo mismo que hemos hecho con la velocidad

19
00:01:25,450 --> 00:01:31,810
‫de la plataforma, que es una especie de velocidad de rotación multiplicada por el tiempo delta sumado a la rotación actual.

20
00:01:31,810 --> 00:01:35,470
‫Entonces, ¿cuál debería ser esa velocidad de rotación?

21
00:01:35,470 --> 00:01:39,520
‫Bueno, ahí es donde queremos pasar al archivo de encabezado y agregar una nueva propiedad U.

22
00:01:39,520 --> 00:01:48,760
‫Así que voy a agregarlo debajo de la distancia de movimiento y voy a tener una propiedad U editada en cualquier lugar y luego

23
00:01:49,300 --> 00:01:55,900
‫le daré una categoría igual a esta vez. Lo llamaré rotación y voy a cambiar el nombre

24
00:01:55,900 --> 00:02:00,100
‫de categoría de plataforma móvil a móvil en ambos casos.

25
00:02:00,100 --> 00:02:03,850
‫Así que vamos a tener una categoría para mover, una categoría para rotar.

26
00:02:03,850 --> 00:02:11,800
‫Luego, debajo de la propiedad, vamos a colocar un rotador F llamado velocidad de rotación y no le daremos un valor

27
00:02:11,800 --> 00:02:16,780
‫predeterminado porque, de manera predeterminada, no quiero que ninguna de nuestras plataformas gire.

28
00:02:16,780 --> 00:02:21,190
‫Entonces, el valor predeterminado será 000, y eso es justo lo que necesitamos.

29
00:02:21,280 --> 00:02:26,470
‫Así que voy a poner un punto y coma al final de la línea aquí y ahora podemos

30
00:02:26,470 --> 00:02:31,330
‫volver al archivo C++ y usar esa variable miembro en nuestra función de plataforma de rotación.

31
00:02:31,330 --> 00:02:42,610
‫Entonces, lo que queremos hacer es la rotación actual igual a la rotación actual más la velocidad de rotación multiplicada por el tiempo Delta y poner

32
00:02:42,610 --> 00:02:46,750
‫un punto y coma al final de la línea.

33
00:02:46,900 --> 00:02:52,660
‫Y ahora la pieza final del rompecabezas es colocar a nuestro actor en esa nueva rotación.

34
00:02:52,660 --> 00:02:58,300
‫Entonces, exactamente como lo esperarías, tal vez un pequeño mini desafío para ti, de hecho, ¿cómo seguirías adelante

35
00:02:58,300 --> 00:03:00,130
‫y lo harías tú mismo?

36
00:03:01,970 --> 00:03:10,430
‫Bueno, lo que usaríamos es la función de rotación de actor establecida y pasaríamos un argumento de rotación actual así y

37
00:03:10,430 --> 00:03:14,930
‫pondremos un punto y coma al final de la línea.

38
00:03:14,960 --> 00:03:19,160
‫Ahora, desafortunadamente, no funciona tan simple como esto.

39
00:03:19,310 --> 00:03:22,190
‫Me ha llamado la atención, algunos estudiantes han señalado en el asistente de enseñanza.

40
00:03:22,190 --> 00:03:27,920
‫Dan, muchas gracias, ha señalado que simplemente sumar rotaciones de esta manera no siempre funcionará debido a algunas

41
00:03:27,920 --> 00:03:32,710
‫de las complicaciones relacionadas con las rotaciones que se enrollan alrededor de sí mismas.

42
00:03:32,720 --> 00:03:38,870
‫Si llega hasta -90 grados de rotación, en algún momento tendrá que cambiar a más 90 grados

43
00:03:38,870 --> 00:03:41,070
‫de rotación y así sucesivamente.

44
00:03:41,090 --> 00:03:49,580
‫Entonces, una mejor manera de evitar esto, en lugar de establecer la rotación activa, es llamar a la rotación local de

45
00:03:49,580 --> 00:03:50,540
‫agregar actor.

46
00:03:50,540 --> 00:03:57,110
‫Y puede notar aquí que hay algunas formas de transformación local de actor adicional y compensación local que es para

47
00:03:57,110 --> 00:03:57,830
‫la ubicación.

48
00:03:57,830 --> 00:04:00,920
‫Así que también puedes usar eso en lugar de agregar una ubicación.

49
00:04:00,920 --> 00:04:05,840
‫Sin embargo, no hay el mismo tipo de problemas que vamos a encontrar en los casos extremos relacionados con

50
00:04:05,840 --> 00:04:06,380
‫la rotación.

51
00:04:06,380 --> 00:04:12,800
‫Entonces, lo que recomendaría que hicieras es agregar la rotación local del actor aquí y luego solo

52
00:04:12,800 --> 00:04:19,670
‫ingresas la velocidad de rotación multiplicada por el tiempo Delta y hace el resto de este código automáticamente por ti.

53
00:04:19,670 --> 00:04:22,100
‫Así que podemos seguir adelante y deshacernos de esas líneas.

54
00:04:22,100 --> 00:04:27,560
‫Y tiene una adición directa a la rotación local aquí, y también puede deshacerse de

55
00:04:27,560 --> 00:04:31,670
‫esto obteniendo la rotación actual porque ya no la necesitamos.

56
00:04:31,850 --> 00:04:35,450
‫Así que vayamos al editor y presionemos el botón de compilación.

57
00:04:35,450 --> 00:04:37,520
‫Y cuando haya terminado, cierre el registro.

58
00:04:37,640 --> 00:04:42,530
‫Seleccionemos una de las plataformas en el nivel que cualquiera de ellas servirá y echemos un vistazo a las categorías.

59
00:04:42,530 --> 00:04:46,970
‫Así que tenemos movimiento y tenemos rotación y tenemos la velocidad de rotación entonces.

60
00:04:46,970 --> 00:04:54,890
‫Así que quiero rotar esta plataforma alrededor de su eje Z probablemente, digamos unos 90 grados por segundo.

61
00:04:54,890 --> 00:04:57,920
‫Así que toma 4 segundos hacer una rotación completa.

62
00:04:57,950 --> 00:04:59,990
‫Sigamos adelante y dale al play.

63
00:04:59,990 --> 00:05:00,620
‫Y ahí tienes

64
00:05:00,620 --> 00:05:03,590
‫Tenemos una plataforma giratoria y móvil.

65
00:05:03,590 --> 00:05:11,270
‫Entonces, a diferencia del mecanismo de la plataforma móvil, no tenemos que preocuparnos de que nuestra plataforma giratoria realmente vaya hacia

66
00:05:11,270 --> 00:05:13,040
‫atrás y hacia adelante.

67
00:05:13,040 --> 00:05:16,310
‫Si quieres que haga eso, esa es una posible extensión que podrías pensar.

68
00:05:16,310 --> 00:05:22,400
‫Pero para mí eso es suficiente porque solo queremos que estas cosas sigan dando vueltas y vueltas en

69
00:05:22,400 --> 00:05:23,420
‫la misma dirección.

70
00:05:23,630 --> 00:05:29,270
‫Así que permítanme ir y eliminar la rotación de esta plataforma en particular porque no queremos que esta

71
00:05:29,270 --> 00:05:30,200
‫plataforma gire.

72
00:05:30,200 --> 00:05:37,640
‫Así que me gustaría desafiarte a que hagas una plataforma giratoria de pitidos, básicamente otra variante más para que

73
00:05:37,640 --> 00:05:40,220
‫usemos y encontremos una malla adecuada.

74
00:05:40,220 --> 00:05:45,980
‫Iría con algo que sea vagamente circular para que tenga sentido como una plataforma giratoria y le

75
00:05:45,980 --> 00:05:52,640
‫daría una velocidad de rotación predeterminada y lo colocaría en el nivel para crear un poco de un rompecabezas de plataforma

76
00:05:52,640 --> 00:05:54,380
‫giratoria para que puedas cruzar.

77
00:05:54,380 --> 00:05:56,300
‫Pausa el video y pruébalo.

78
00:05:59,400 --> 00:05:59,700
‫Bueno.

79
00:05:59,700 --> 00:06:00,660
‫Bienvenido de nuevo.

80
00:06:00,690 --> 00:06:08,610
‫Así que vamos a seguir adelante en nuestro cajón de contenido y vamos a buscar las clases de C++, Obstacle Assault y hacer clic con

81
00:06:08,610 --> 00:06:14,270
‫el botón derecho en la plataforma móvil para crear un dispositivo de clase blueprint derivado de esto.

82
00:06:14,280 --> 00:06:21,060
‫Lo llamaremos la plataforma rotativa de subrayado de BP y lo pondremos en la ruta del contenido y

83
00:06:21,060 --> 00:06:23,430
‫crearemos una clase de modelo.

84
00:06:23,430 --> 00:06:27,180
‫Una vez que aparezca el editor, vamos a acoplarlo a nuestra ventana principal.

85
00:06:27,180 --> 00:06:33,180
‫Voy a cerrar mi navegador de contenido que parece querer aparecer cada vez, y voy a ir a nuestro

86
00:06:33,180 --> 00:06:39,390
‫nivel principal e ir a la isla con todos nuestros activos de prueba al hacer clic con el botón derecho.

87
00:06:40,260 --> 00:06:44,490
‫Vaya aquí y veamos si hay algo que se vea bien.

88
00:06:44,490 --> 00:06:48,600
‫Me gusta el aspecto de estas plataformas aquí.

89
00:06:48,600 --> 00:06:55,710
‫Si hago clic con el botón derecho en él o si solo hago clic en él, entonces la malla que se usa aquí

90
00:06:55,740 --> 00:06:59,760
‫en la malla estática es la plataforma SM A. Así que busquemos esa.

91
00:06:59,760 --> 00:07:07,620
‫Vayamos a nuestros planos, abramos el contenido, dibujemos, vayamos a todos y luego busquemos plataforma

92
00:07:07,620 --> 00:07:14,710
‫subrayado M, subrayado A y luego tenemos la malla, que es esta aquí.

93
00:07:15,270 --> 00:07:16,890
‫El segundo para mí.

94
00:07:16,980 --> 00:07:21,480
‫Voy a arrastrarlo a nuestra ventana gráfica para tener nuestra plataforma.

95
00:07:21,480 --> 00:07:24,090
‫Ahora veamos dónde se centra esto.

96
00:07:24,090 --> 00:07:25,860
‫¿Está centrado en el medio?

97
00:07:25,860 --> 00:07:30,840
‫Sí, lo es, lo cual es bueno e importante porque necesitamos que gire alrededor del medio.

98
00:07:30,840 --> 00:07:34,560
‫De lo contrario, esta plataforma circular se verá un poco extraña.

99
00:07:34,770 --> 00:07:43,680
‫También podemos escalarlo un poco hacia arriba en las dimensiones x e y para hacer que esta plataforma sea un poco más grande y podemos ir

100
00:07:43,680 --> 00:07:51,180
‫a los valores predeterminados de la clase para eliminar cualquier velocidad de la plataforma porque no queremos que se mueva y establecer

101
00:07:51,360 --> 00:07:57,480
‫la distancia de movimiento hacia abajo. a cero potencialmente y luego mire la sección de rotación y ajústela

102
00:07:57,480 --> 00:08:01,440
‫bien, probamos 90 grados por segundo y eso parecía bastante razonable.

103
00:08:01,440 --> 00:08:04,050
‫Así que sigamos adelante y salvemos esta plataforma giratoria.

104
00:08:04,170 --> 00:08:12,270
‫Vamos a nuestro nivel principal y luego hacemos clic derecho en la pequeña isla flotante donde tenemos nuestro nivel, configuramos nuestro

105
00:08:12,270 --> 00:08:14,360
‫rompecabezas, hacemos clic, vamos aquí.

106
00:08:14,880 --> 00:08:21,930
‫Luego, en la parte superior de esta isla, quiero colocar nuestro nuevo plano.

107
00:08:21,930 --> 00:08:28,050
‫Así que cancelemos la búsqueda, vayamos a la raíz del contenido y busquemos nuestra plataforma giratoria y colóquela en el

108
00:08:28,050 --> 00:08:28,410
‫nivel.

109
00:08:28,410 --> 00:08:31,050
‫Y al instante veo que en realidad quiero que sea un poco más grande.

110
00:08:31,200 --> 00:08:33,630
‫Así que sigamos adelante y amplíelo.

111
00:08:33,630 --> 00:08:37,500
‫Unas pocas unidades más, tal vez tres veces debería ser bueno.

112
00:08:37,500 --> 00:08:38,850
‫Vamos a echar un vistazo.

113
00:08:38,850 --> 00:08:44,940
‫Ahora, creo que podría ser aún más grande, así que voy a escalar un poco más para que esencialmente en X

114
00:08:44,940 --> 00:08:48,630
‫e Y sea cinco veces más grande de lo que era originalmente.

115
00:08:48,660 --> 00:08:54,330
‫De acuerdo, ese es un buen disco giratorio ancho y puede ser un gran desafío para nosotros cruzarlo.

116
00:08:54,330 --> 00:09:02,190
‫Así que voy a duplicarlos usando Alt y arrastrar para hacer algunos de ellos a través de

117
00:09:02,190 --> 00:09:07,860
‫la plataforma e intentar colocarlos apropiadamente y luego Alt arrastrar algunos más.

118
00:09:08,550 --> 00:09:14,320
‫Así que aquí tenemos un buen conjunto de acertijos para tratar de resolver.

119
00:09:14,340 --> 00:09:18,570
‫Así que solo los moví un poco hasta que pude ponerlos casi de borde a borde.

120
00:09:18,570 --> 00:09:24,540
‫Y aquí es donde poder tener un modo de juego realmente ayuda porque podemos hacer clic derecho cerca de las

121
00:09:24,540 --> 00:09:30,450
‫plataformas y hacer clic en reproducir desde aquí, y aquí están todas nuestras plataformas giratorias para que podamos pisarlas.

122
00:09:30,450 --> 00:09:37,620
‫Y ahora es un pequeño desafío para nosotros encontrar nuestro camino a través de estas plataformas móviles de manera agradable y fácil.

123
00:09:37,620 --> 00:09:41,370
‫Ahora, existe esta zona muerta en el medio que podríamos tratar de borrar, pero

124
00:09:41,370 --> 00:09:47,190
‫en realidad es bastante difícil llegar y permanecer en la zona muerta, así que no voy a tratar de poner nada allí

125
00:09:47,190 --> 00:09:48,930
‫específicamente para tratar de detener eso.

126
00:09:49,350 --> 00:09:50,280
‫Pero puedes ver ahí vas.

127
00:09:50,280 --> 00:09:55,080
‫Es un desafío factible que podemos superar, pero es un poco complicado y eso es divertido.

128
00:09:55,080 --> 00:09:55,590
‫Buena cosa.

129
00:09:55,590 --> 00:10:01,270
‫Entonces, en esta lección, hemos visto cómo hacer plataformas giratorias aprendiendo sobre un nuevo tipo, el

130
00:10:01,290 --> 00:10:05,940
‫rotador F y cómo podemos usarlo para establecer la rotación de nuestros actores.

131
00:10:05,940 --> 00:10:07,530
‫Te veré en la próxima conferencia.

