﻿1
00:00:04,380 --> 00:00:05,490
‫Hola y bienvenido.

2
00:00:05,490 --> 00:00:11,640
‫En esta lección, implementaremos nuestras propias funciones de miembro de clase, mover plataforma y

3
00:00:11,640 --> 00:00:12,570
‫rotar plataforma.

4
00:00:12,570 --> 00:00:16,950
‫Vamos a ver cómo podemos configurarlos para que puedan aceptar argumentos.

5
00:00:17,280 --> 00:00:20,970
‫Y nos ayudará a ordenar un poco nuestro código.

6
00:00:20,970 --> 00:00:23,100
‫Vamos a sumergirnos y ver cómo funciona esto.

7
00:00:24,150 --> 00:00:29,520
‫Entonces, hasta ahora, hemos estado usando las funciones de C++ que ya se crearon para nosotros.

8
00:00:29,520 --> 00:00:34,620
‫Hemos estado usando tomar estos y podemos jugar en términos de escribir su funcionalidad.

9
00:00:34,800 --> 00:00:38,100
‫Y también hemos estado usando funciones que otras personas han escrito para nosotros.

10
00:00:38,100 --> 00:00:40,830
‫Los hemos estado llamando como obtener ubicación activa y obtener nombre.

11
00:00:41,370 --> 00:00:49,080
‫Ahora, ¿cómo podemos crear nuevas funciones propias para ayudar a organizar nuestro código y mantener estas funciones pequeñas

12
00:00:49,080 --> 00:00:51,630
‫y todo mucho más legible?

13
00:00:52,380 --> 00:00:57,930
‫Bueno, ya tenemos los bloques de construcción básicos en su lugar al llegar al final de la sección.

14
00:00:57,930 --> 00:01:00,300
‫Entendemos mucho más sobre la sintaxis de C++.

15
00:01:00,300 --> 00:01:08,100
‫Entonces, lo que quiero hacer es esencialmente crear una nueva función en la plataforma móvil que nos permita tener

16
00:01:08,550 --> 00:01:12,360
‫solo la entrada, digamos llamar a la plataforma móvil.

17
00:01:12,930 --> 00:01:14,160
‫¿Por qué quiero hacer eso?

18
00:01:14,160 --> 00:01:20,250
‫Bueno, porque poder hacer una llamada de función como esta llamada MOVE Platform, realmente habla de lo que estamos

19
00:01:20,250 --> 00:01:22,560
‫tratando de hacer en este momento.

20
00:01:22,560 --> 00:01:28,380
‫Tenemos muchas cosas en marcha en tecnología y no tengo del todo claro por qué estamos haciendo todas estas cosas

21
00:01:28,380 --> 00:01:34,230
‫si solo vengo y lo miro, si entré en tecnología y vi una función que dice Mover plataforma , bueno,

22
00:01:34,710 --> 00:01:39,570
‫de repente tengo el contexto de lo que debería estar haciendo todo esto, y no necesito

23
00:01:39,570 --> 00:01:42,300
‫un solo comentario para decirme qué está pasando.

24
00:01:42,510 --> 00:01:47,430
‫Esto será particularmente útil cuando agreguemos a la mezcla la posibilidad de rotar la plataforma

25
00:01:47,430 --> 00:01:48,000
‫también.

26
00:01:48,930 --> 00:01:52,710
‫Entonces, ¿cómo definimos las funciones de declaración?

27
00:01:52,710 --> 00:01:56,610
‫Bueno, el aspecto de la declaración se rehace en el encabezado del archivo.

28
00:01:56,610 --> 00:02:02,100
‫Ahí es donde básicamente decimos cabezas hacia C++, vamos a tener una función que se

29
00:02:02,100 --> 00:02:02,970
‫verá así.

30
00:02:03,390 --> 00:02:06,870
‫Y luego en C++ es donde realmente definimos la función.

31
00:02:06,870 --> 00:02:09,840
‫Le damos el cuerpo, le decimos exactamente a C++.

32
00:02:09,840 --> 00:02:12,390
‫Así es como funciona la función.

33
00:02:13,230 --> 00:02:16,020
‫Y echemos un vistazo a cómo podemos hacer esto.

34
00:02:16,470 --> 00:02:20,700
‫Tenemos algunos ejemplos de funciones y tenemos grandes en juego, tenemos tecnología.

35
00:02:21,180 --> 00:02:28,860
‫Y es un buen momento para que veamos las diferentes secciones que tenemos en un archivo de encabezado.

36
00:02:29,070 --> 00:02:34,950
‫Tenemos public y protected siendo mencionado aquí y public siendo mencionado nuevamente.

37
00:02:35,490 --> 00:02:36,450
‫Ahora, que significa esto?

38
00:02:36,450 --> 00:02:43,350
‫Estas palabras clave con dos puntos al final definen básicamente un apartado de accesibilidad.

39
00:02:43,350 --> 00:02:46,200
‫Estas funciones, desde dónde se puede acceder.

40
00:02:46,770 --> 00:02:51,360
‫Hemos visto más en la seguridad normal.

41
00:02:51,360 --> 00:02:57,930
‫Esta es una función a la que llamamos en un vector F, pero la llamamos desde otra clase, no desde

42
00:02:57,960 --> 00:02:59,670
‫dentro de un vector F.

43
00:03:00,240 --> 00:03:04,860
‫Esto significa que la accesibilidad de esta función debe ser pública.

44
00:03:05,040 --> 00:03:09,690
‫Ahora dejaremos a un lado protegido solo por un minuto porque ahí se complica un poco más.

45
00:03:10,020 --> 00:03:14,130
‫Pero hay otro tipo de palabra clave que podemos utilizar, que es private.

46
00:03:14,730 --> 00:03:21,210
‫Así que voy a agregar después de la toma, voy a agregar el aviso de palabra clave privada que no pongo sangría en

47
00:03:21,210 --> 00:03:24,330
‫estas secciones y vamos a poner dos puntos al final.

48
00:03:24,330 --> 00:03:29,040
‫Y eso significa que todo lo que viene después hasta la siguiente sección, la siguiente palabra

49
00:03:29,040 --> 00:03:31,440
‫clave que pongo aquí, va a ser privado.

50
00:03:31,860 --> 00:03:37,980
‫Eso significa que tomamos todas estas variables y dijimos: Oye, ninguna otra clase puede tocarlas.

51
00:03:38,430 --> 00:03:42,660
‫Y esa suele ser la mejor práctica que no hemos hecho hasta este momento porque no quería que

52
00:03:42,660 --> 00:03:44,400
‫las cosas fueran demasiado confusas para usted.

53
00:03:44,790 --> 00:03:49,320
‫Pero las variables en las clases generalmente deberían ser su propio negocio.

54
00:03:49,320 --> 00:03:55,950
‫Es uno de los inquilinos principales de la programación orientada a objetos que dejamos que las clases administren

55
00:03:55,950 --> 00:04:02,040
‫sus propias variables, y solo accedemos a ellas usando funciones que la clase indica como públicas.

56
00:04:03,180 --> 00:04:08,010
‫Entonces, lo que vamos a hacer aquí es agregar algunas funciones privadas más aquí porque no queremos

57
00:04:08,010 --> 00:04:12,090
‫que se llame a algo como Move Platform desde fuera de la clase.

58
00:04:12,390 --> 00:04:16,320
‫Queremos que sea administrado por nuestra propia función tecnológica.

59
00:04:16,950 --> 00:04:20,340
‫Entonces, ¿cómo definimos una función privada?

60
00:04:20,340 --> 00:04:22,620
‫Bueno, lo ponemos en una sección privada.

61
00:04:22,620 --> 00:04:24,600
‫Así que tenemos nuestra palabra clave privada aquí.

62
00:04:24,810 --> 00:04:31,410
‫Sin embargo, lo pondré después de nuestras variables y comenzaremos con el tipo de retorno.

63
00:04:31,410 --> 00:04:38,670
‫Y si nuestra función no devuelve nada, simplemente escribimos void para indicar que no hay retorno de

64
00:04:38,670 --> 00:04:39,780
‫esta función.

65
00:04:40,530 --> 00:04:42,540
‫Luego le damos un nombre de función.

66
00:04:42,540 --> 00:04:51,110
‫Así que teníamos que mover la plataforma era lo que queríamos y luego le damos algunos paréntesis para indicar que esta es una función, abrimos y cerramos

67
00:04:51,120 --> 00:04:56,880
‫paréntesis y luego un punto y coma para terminar la línea y decir, está bien, eso es

68
00:04:56,880 --> 00:04:57,270
‫todo.

69
00:04:57,270 --> 00:05:03,180
‫Esa es la función que quiero declarar aquí en el archivo de encabezado y todo lo que hace.

70
00:05:03,230 --> 00:05:04,970
‫Dice Esta es la forma de la función.

71
00:05:04,970 --> 00:05:06,020
‫Este es el regreso.

72
00:05:06,200 --> 00:05:11,630
‫Estos son los parámetros que toma, el nombre y la clase a la que pertenece.

73
00:05:11,660 --> 00:05:16,250
‫Ahora, para darle una implementación, tenemos que definirlo en el archivo C++.

74
00:05:16,250 --> 00:05:17,330
‫Así que vamos para allá.

75
00:05:17,870 --> 00:05:23,480
‫Y al final del archivo, justo fuera de las llaves, aquí es donde lo hacemos.

76
00:05:23,510 --> 00:05:25,610
‫Empezamos de nuevo con el tipo de retorno.

77
00:05:25,610 --> 00:05:31,970
‫Entonces eso será nulo porque estamos dentro de un archivo C++, no estamos dentro de las llaves de

78
00:05:31,970 --> 00:05:32,710
‫una clase.

79
00:05:32,720 --> 00:05:41,330
‫Tenemos que usar el operador de resolución de alcance para decir que estamos tratando de definir una función desde dentro de la clase

80
00:05:41,330 --> 00:05:42,550
‫de plataforma móvil.

81
00:05:42,560 --> 00:05:49,130
‫Entonces escribimos el nombre de la clase, que es una plataforma móvil, recordando que hay un prefijo para decir que

82
00:05:49,130 --> 00:05:50,390
‫es un actor.

83
00:05:51,380 --> 00:05:55,940
‫Luego usamos dos puntos, dos puntos, el operador de resolución de alcance, y luego usamos el nombre de

84
00:05:55,940 --> 00:05:58,700
‫la función que estamos definiendo, que es la plataforma MOVE.

85
00:05:59,420 --> 00:06:03,400
‫Y luego usamos el mismo conjunto de parámetros que usamos en el archivo de encabezado.

86
00:06:03,410 --> 00:06:07,700
‫En este caso, teníamos un conjunto de parámetros vacío, así que solo tenemos los paréntesis.

87
00:06:08,390 --> 00:06:15,200
‫Y luego, en lugar de poner un punto y coma al final de esta línea en una línea nueva, ponemos una

88
00:06:15,200 --> 00:06:18,590
‫llave de apertura y la correspondiente llave de cierre.

89
00:06:19,070 --> 00:06:24,830
‫Y entre estas llaves donde ponemos el código de nuestra función, fantástico.

90
00:06:24,830 --> 00:06:29,720
‫Entonces, lo que quiero hacer ahora es tratar de decir, bueno, toda esta funcionalidad que tenemos aquí y, de hecho,

91
00:06:29,720 --> 00:06:32,270
‫voy a eliminar los comentarios porque ya no los necesitamos.

92
00:06:32,270 --> 00:06:38,120
‫Eran el pseudocódigo que usamos para implementar esto, pero ahora ha cumplido su propósito.

93
00:06:38,120 --> 00:06:40,160
‫Entendemos lo que hacen las líneas de código.

94
00:06:40,640 --> 00:06:48,860
‫Voy a sacar todo menos la función de plataforma de movimiento fuera de tomar y copiarlo y pegarlo en nuestra función de

95
00:06:48,860 --> 00:06:51,290
‫plataforma de MOVER en su lugar.

96
00:06:52,100 --> 00:06:57,710
‫Entonces, esto debería funcionar más o menos igual porque cuando entramos en tecnología, llamamos a la plataforma de movimiento y simplemente

97
00:06:57,710 --> 00:06:59,510
‫ejecuta la misma pieza de código.

98
00:06:59,510 --> 00:07:05,870
‫Excepto que ahora lo hemos incluido en una función y nos facilita leerlo y potencialmente reutilizarlo en

99
00:07:05,870 --> 00:07:06,710
‫el futuro.

100
00:07:07,250 --> 00:07:11,150
‫Pero si haces esto, notarás que hay un problema.

101
00:07:11,930 --> 00:07:19,820
‫Estamos accediendo a la hora Delta y ese es un parámetro al que ya no tenemos acceso porque fue un parámetro pasado a

102
00:07:19,820 --> 00:07:20,870
‫la tecnología.

103
00:07:21,500 --> 00:07:29,600
‫Entonces, si queremos controlar eso, necesitamos tener un parámetro en nuestra función.

104
00:07:30,080 --> 00:07:32,960
‫Entonces, cuando definimos parámetros, tenemos que hacerlo en dos lugares.

105
00:07:32,960 --> 00:07:37,490
‫Al igual que cuando definimos la función, volvemos al archivo de encabezado y entre

106
00:07:37,820 --> 00:07:40,130
‫paréntesis de nuestra función de plataforma MOVE.

107
00:07:40,130 --> 00:07:45,710
‫Aquí es donde decimos qué parámetros queremos y es exactamente como definir una variable.

108
00:07:45,710 --> 00:07:48,080
‫Necesitas darle un tipo y darle un nombre.

109
00:07:48,080 --> 00:07:52,970
‫Así que vamos a decir que va a ser un tipo flotante y podemos llamarlo tiempo Delta.

110
00:07:52,970 --> 00:07:54,290
‫No tiene que ser el mismo nombre.

111
00:07:54,290 --> 00:07:55,010
‫Podríamos llamarlo así.

112
00:07:55,220 --> 00:07:56,630
‫Podríamos llamarlo tiempo.

113
00:07:56,990 --> 00:08:03,470
‫Pero es más fácil darle el mismo nombre porque entonces es obvio para cualquiera que lo lea lo que se debe

114
00:08:03,470 --> 00:08:04,310
‫pasar aquí.

115
00:08:04,520 --> 00:08:09,530
‫Luego, en el archivo C++, debemos hacer coincidir la lista de parámetros.

116
00:08:09,530 --> 00:08:13,730
‫Entonces, nuevamente, puede hacer esto copiando y pegando o escribiéndolo.

117
00:08:13,730 --> 00:08:18,020
‫Si lo escribe, asegúrese de no cometer errores tipográficos porque el compilador se quejará.

118
00:08:18,470 --> 00:08:24,680
‫Así que vamos a pasar un elemento flotante llamado Delta Time como parámetro o definirlo como un parámetro para mover

119
00:08:24,680 --> 00:08:30,740
‫la plataforma, pero en realidad no lo hemos pasado como un argumento para mover la plataforma en tick.

120
00:08:30,740 --> 00:08:34,440
‫Y verán que tengo una pequeña línea roja ondulada aquí archivo muy, muy.

121
00:08:34,490 --> 00:08:40,700
‫Dice que hay muy pocos argumentos en la llamada a la función porque lo he definido en el

122
00:08:40,700 --> 00:08:46,130
‫archivo de encabezado y ahora en C++, además de requerir un parámetro de tipo flotante.

123
00:08:46,730 --> 00:08:48,710
‫Así que debo proporcionar ese parámetro.

124
00:08:48,710 --> 00:08:52,100
‫Así que me aseguraré de que ese sea el parámetro que estoy proporcionando.

125
00:08:52,100 --> 00:08:58,520
‫El valor que proporciono proviene de la variable de tiempo Delta o el parámetro de tiempo Delta de tick.

126
00:08:59,030 --> 00:09:03,890
‫Así que estamos enhebrando el valor, el valor se pasa a tick, luego se pasa a

127
00:09:03,890 --> 00:09:11,930
‫la plataforma de movimiento y termina en un parámetro en la función de plataforma MOVE donde se puede usar para ejecutar y mover la funcionalidad de

128
00:09:11,930 --> 00:09:12,800
‫la plataforma.

129
00:09:12,800 --> 00:09:18,710
‫Así que me gustaría que crearan su propia función de rotación de plataforma que llamaremos desde TIC.

130
00:09:19,010 --> 00:09:23,690
‫Entonces, lo agregará al archivo de encabezado como lo hicimos para nuestra función de plataforma MOVE.

131
00:09:23,690 --> 00:09:26,360
‫También lo agregaremos al archivo C++ de la misma manera.

132
00:09:26,360 --> 00:09:33,950
‫Así que tome sus sugerencias de la forma en que lo hicimos para esas funciones y luego llámelo desde la función tick.

133
00:09:34,250 --> 00:09:40,040
‫Asegúrese de pasar la hora delta y de definir cualquier parámetro que le permita pasar la hora delta

134
00:09:40,520 --> 00:09:45,920
‫e implementar el cuerpo de la plataforma Rotate para que cierre la sesión de un mensaje.

135
00:09:45,920 --> 00:09:51,350
‫En realidad, todavía no va a rotar la plataforma, sino como un marcador de posición para asegurarse de que realmente se

136
00:09:51,350 --> 00:09:56,120
‫llame un mensaje de registro utilizando el registro de la interfaz de usuario del que hemos aprendido.

137
00:09:56,450 --> 00:09:58,160
‫Pausa el video y pruébalo.

138
00:10:01,630 --> 00:10:02,080
‫Bueno.

139
00:10:02,080 --> 00:10:02,800
‫Bienvenido de nuevo.

140
00:10:02,830 --> 00:10:09,070
‫Así que vamos a comenzar en el archivo de encabezado y en su mayoría vamos a hacer lo mismo que hicimos con

141
00:10:09,070 --> 00:10:10,020
‫nuestra plataforma MOVE.

142
00:10:10,030 --> 00:10:14,380
‫Lo pondremos en una sección privada para que solo sea accesible dentro de nuestra clase.

143
00:10:14,890 --> 00:10:19,720
‫Le daré un tipo de retorno nulo, lo llamaremos plataforma giratoria.

144
00:10:19,870 --> 00:10:21,400
‫Vamos a abrir la lista de parámetros.

145
00:10:21,400 --> 00:10:25,180
‫Y en él vamos a poner un parámetro que tendrá tipo

146
00:10:25,180 --> 00:10:30,670
‫flotante, lo llamaremos Delta time y cerraremos los parámetros y terminaremos con un punto y coma.

147
00:10:31,270 --> 00:10:36,280
‫Ahora, la mayor parte de lo que hacemos en el archivo C++ es exactamente lo mismo que en el encabezado del archivo.

148
00:10:36,280 --> 00:10:41,380
‫Así que en realidad voy a copiar esta línea, ir al archivo C++ y mostrarles qué es diferente.

149
00:10:41,800 --> 00:10:46,990
‫Así que voy a ir a una nueva línea vacía al final del archivo, pegarla y luego, lo que es diferente aquí,

150
00:10:46,990 --> 00:10:50,200
‫necesitamos el operador de resolución de alcance y el nombre de la clase.

151
00:10:50,620 --> 00:10:57,820
‫Así que vamos a tener una plataforma móvil, dos puntos, una plataforma giratoria de dos puntos.

152
00:10:58,360 --> 00:11:01,330
‫Luego tenemos la lista de parámetros y luego no necesitamos el punto y coma al final.

153
00:11:01,330 --> 00:11:06,940
‫Así que elimine el punto y coma, agregue una nueva línea y ataque las llaves en lugar de una nueva línea entre

154
00:11:06,940 --> 00:11:07,900
‫esas dos llaves.

155
00:11:08,680 --> 00:11:12,010
‫Entonces, lo que queremos hacer aquí es imprimir un mensaje de registro.

156
00:11:12,010 --> 00:11:14,920
‫Así que voy a escribir tu registro, presiona enter.

157
00:11:15,460 --> 00:11:17,260
‫Solo va a ser un simple mensaje de visualización.

158
00:11:17,680 --> 00:11:24,190
‫Y en el texto voy a poner el nombre de nuestra plataforma.

159
00:11:24,550 --> 00:11:31,090
‫Así que va a ser un porcentaje, luego vamos a escribir punto giratorio, punto, punto, y luego voy a

160
00:11:31,090 --> 00:11:32,530
‫pasar el nombre.

161
00:11:32,530 --> 00:11:37,570
‫Ahora podríamos poner esto en una variable, pero debido a que aquí es una línea

162
00:11:37,600 --> 00:11:44,980
‫bastante corta, voy a escribir estrella, obtener el nombre y luego colocar los paréntesis para que esencialmente llamemos aquí al obtener el

163
00:11:44,980 --> 00:11:45,580
‫nombre.

164
00:11:45,580 --> 00:11:48,040
‫Esa es la expresión que se apodera de la cadena.

165
00:11:48,370 --> 00:11:53,350
‫Y luego estamos convirtiendo ese resultado para ponerlo en nuestro mensaje de registro.

166
00:11:53,950 --> 00:12:00,010
‫Entonces, desde todas nuestras plataformas, espero ver que se imprima la rotación, pero esto solo sucederá si realmente

167
00:12:00,010 --> 00:12:01,360
‫lo llamo en tecnología.

168
00:12:01,360 --> 00:12:09,130
‫Entonces, vayamos a la función de marca después de que la plataforma MOVE pueda agregar una nueva línea y llamar a la plataforma de rotación.

169
00:12:09,730 --> 00:12:11,290
‫Y tenemos que ver.

170
00:12:11,290 --> 00:12:16,840
‫Cuando abro los paréntesis, me da una pista de que necesito pasar un argumento para el tiempo Delta.

171
00:12:16,840 --> 00:12:21,340
‫De nuevo, vamos a pasar esa misma variable de tiempo Delta desde aquí.

172
00:12:21,490 --> 00:12:24,790
‫Y como dije, los nombres aquí no tienen que ser los mismos.

173
00:12:24,790 --> 00:12:28,480
‫Por lo tanto, este tiempo delta debe coincidir con el tiempo delta dentro de la tecnología.

174
00:12:29,080 --> 00:12:34,330
‫Pero podríamos optar por llamar a la variable dentro de la fecha de la plataforma de rotación en su lugar.

175
00:12:34,330 --> 00:12:39,520
‫Y en cualquier lugar que lo usemos dentro de la plataforma de rotación, tendríamos que usar ADT, el nombre del parámetro

176
00:12:39,520 --> 00:12:41,380
‫y el argumento básicamente puede ser diferente.

177
00:12:41,470 --> 00:12:46,840
‫Así que saltemos a Unreal y presionemos compilar porque hemos realizado algunos cambios en el archivo de encabezado.

178
00:12:46,840 --> 00:12:52,930
‫La compilación será un poco más larga que cuando acabamos de cambiar el archivo C++ y una vez que se

179
00:12:52,930 --> 00:12:57,580
‫haya completado la compilación, continuaremos y presionaremos reproducir y abriremos el registro de salida.

180
00:12:58,030 --> 00:13:04,000
‫Y puede ver que, de hecho, estamos mostrando mensajes de registro sobre la rotación de cada una de las plataformas.

181
00:13:04,000 --> 00:13:08,590
‫Así que parece que nuestra función está siendo efectivamente llamada en tecnología.

182
00:13:09,070 --> 00:13:09,580
‫Buena cosa.

183
00:13:09,580 --> 00:13:14,830
‫Ahora entendemos cómo crear nuestras propias funciones que son miembros de una clase.

184
00:13:15,280 --> 00:13:21,250
‫Es una herramienta muy útil para reutilizar un código, pero también para organizarlo tal como estaba en Blueprint.

185
00:13:21,760 --> 00:13:23,470
‫Te veré en la próxima conferencia.

