﻿1
00:00:04,780 --> 00:00:05,920
‫Hola y bienvenido.

2
00:00:05,920 --> 00:00:11,800
‫En esta lección, vamos a aprender cómo podemos obtener resultados de las funciones en C++.

3
00:00:12,130 --> 00:00:18,940
‫Y vamos a usar esto para simplificar enormemente nuestro código y comenzar a implementar parte del pseudocódigo que

4
00:00:18,940 --> 00:00:19,750
‫hemos escrito.

5
00:00:19,780 --> 00:00:20,560
‫Sumerjámonos.

6
00:00:21,070 --> 00:00:26,290
‫Entonces, antes de intentar comprender los valores de retorno de las funciones, hagamos un breve desvío y entendámoslo.

7
00:00:26,290 --> 00:00:29,110
‫Dos conceptos añaden dos conceptos más a nuestro colosalmente.

8
00:00:29,650 --> 00:00:32,080
‫Así que la primera es la expresión.

9
00:00:32,080 --> 00:00:36,880
‫Una expresión es un fragmento de código que produce un valor.

10
00:00:37,120 --> 00:00:42,940
‫Y está la declaración que es un fragmento de código que es una acción a realizar.

11
00:00:43,660 --> 00:00:50,980
‫Ahora, estos dos realmente tienen una relación en el sentido de que una expresión casi siempre es una declaración en la

12
00:00:51,130 --> 00:00:56,830
‫que para calcular el valor de un fragmento de código, debe ser una acción a realizar.

13
00:00:57,250 --> 00:01:00,970
‫Pero lo mismo no es necesariamente cierto al revés.

14
00:01:00,970 --> 00:01:04,510
‫Una declaración no siempre le dará un valor.

15
00:01:04,990 --> 00:01:09,850
‫Así que echemos un vistazo a algunos ejemplos de expresiones y algunas cosas que no son del código que

16
00:01:09,850 --> 00:01:10,720
‫ya hemos escrito.

17
00:01:11,260 --> 00:01:20,350
‫Entonces, cuando escribimos my vector en C++, esta es una expresión porque tiene el valor de lo que sea que esté almacenado dentro de

18
00:01:20,350 --> 00:01:22,300
‫la variable my vector.

19
00:01:22,570 --> 00:01:24,700
‫Lo mismo es cierto para el vector local.

20
00:01:24,720 --> 00:01:32,500
‫De hecho, si tiene el vector local más el punto z, eso en sí mismo es una expresión y el vector local el punto

21
00:01:32,500 --> 00:01:33,670
‫z más 100.

22
00:01:33,940 --> 00:01:40,570
‫Eso en sí mismo también es una expresión, porque el vector local punto z te dio el valor dentro del miembro

23
00:01:40,870 --> 00:01:41,410
‫Z.

24
00:01:41,710 --> 00:01:46,900
‫Y cuando sumas 100, eso te da un nuevo valor que tiene la suma de 100.

25
00:01:46,900 --> 00:01:48,430
‫Así que todas estas son expresiones.

26
00:01:49,030 --> 00:01:55,330
‫Sin embargo, algo que no es una expresión es cuando declaramos nuestro vector local, cuando dijimos vector, vector local es igual a mi

27
00:01:55,330 --> 00:01:58,810
‫vector y pusimos un punto y coma al final de la línea.

28
00:01:58,810 --> 00:02:00,970
‫No podemos usar eso para obtener un valor.

29
00:02:00,970 --> 00:02:02,530
‫No hay valor allí.

30
00:02:02,530 --> 00:02:06,160
‫Simplemente le está diciendo a C++ que aquí hay una acción para que la realices.

31
00:02:06,430 --> 00:02:09,100
‫Quiero que crees un nuevo vector local.

32
00:02:09,460 --> 00:02:11,740
‫Así que eso no es una expresión.

33
00:02:12,370 --> 00:02:16,960
‫Sin embargo, algo que es una expresión es obtener la ubicación del actor.

34
00:02:16,960 --> 00:02:20,920
‫Es una función a la que llamamos porque aquí hay paréntesis al final.

35
00:02:20,920 --> 00:02:22,660
‫En realidad no tenemos ningún argumento aquí.

36
00:02:22,660 --> 00:02:26,230
‫Esta es una lista vacía de argumentos, pero está llamando a algo.

37
00:02:26,230 --> 00:02:34,720
‫Y debido a que esta función tiene un valor devuelto, la pieza de código real aquí es una expresión que toma el

38
00:02:34,720 --> 00:02:37,750
‫valor de lo que devuelve la función.

39
00:02:37,750 --> 00:02:44,230
‫Y esto es esencialmente lo mismo que los bolígrafos de salida que hemos visto anteriormente en un plano.

40
00:02:44,260 --> 00:02:50,770
‫Excepto que, a diferencia de los planos, solo puede tener un valor de salida de una función.

41
00:02:50,770 --> 00:02:52,360
‫Solo hay un valor de retorno.

42
00:02:52,750 --> 00:02:59,590
‫Entonces eso es lo que podemos usar aquí donde hemos escrito nuestro pseudocódigo que dice obtener la ubicación actual.

43
00:02:59,890 --> 00:03:02,410
‫Ahí es donde vamos a hacer eso.

44
00:03:02,410 --> 00:03:08,380
‫Vamos a obtener la ubicación usando nuestra ubicación de acceso de obtención.

45
00:03:08,380 --> 00:03:11,050
‫Así que vamos a crear una nueva variable local aquí.

46
00:03:11,470 --> 00:03:14,560
‫Vamos a tener una nueva variable local llamada F de tipo efecto.

47
00:03:14,560 --> 00:03:21,370
‫Tiene que ser un vector de tipo S porque ese es el tipo que se devuelve al obtener

48
00:03:21,370 --> 00:03:31,900
‫una ubicación y vamos a llamar a esta ubicación actual y la igualaremos al resultado de la expresión, obtenemos la ubicación del actor y luego establecemos los paréntesis.

49
00:03:32,020 --> 00:03:37,300
‫de paréntesis coincidentes y luego un punto y coma para terminar la línea.

50
00:03:37,690 --> 00:03:44,050
‫Entonces, si diseccionamos un poco esta línea, podemos ver que este bit aquí, la ubicación del acto de obtención y

51
00:03:44,050 --> 00:03:49,780
‫el paréntesis es la expresión que nos está dando el valor, que es la ubicación actual del actor.

52
00:03:50,380 --> 00:03:56,860
‫Luego estamos haciendo una asignación a la ubicación actual, que también se declara aquí.

53
00:03:57,160 --> 00:04:00,520
‫Así que en esta línea, toda esta línea no es una expresión.

54
00:04:00,520 --> 00:04:02,860
‫No tiene ningún valor, es una declaración.

55
00:04:03,280 --> 00:04:09,670
‫Y, por lo general, puede distinguir una declaración porque en C++ termina en punto y coma.

56
00:04:09,820 --> 00:04:16,750
‫Bien, esto esencialmente nos permitirá eliminar mi vector y los vectores locales que

57
00:04:16,750 --> 00:04:23,590
‫hemos estado usando anteriormente porque deberíamos poder actualizar nuestra variable local aquí, esta

58
00:04:23,590 --> 00:04:29,200
‫ubicación actual que obtuvimos del ubicación de nuestro actor.

59
00:04:29,620 --> 00:04:34,300
‫Entonces, lo que vamos a hacer es más abajo aquí, tenemos un comentario que dice, establece la ubicación.

60
00:04:34,300 --> 00:04:45,220
‫Entonces, después de esa línea de comentarios, voy a establecer la ubicación del actor usando la expresión ubicación actual, que solo usa ese valor variable y luego pongo un punto

61
00:04:45,430 --> 00:04:50,200
‫y coma al final de la línea para decir que todo esto

62
00:04:50,200 --> 00:04:51,430
‫es una declaración.

63
00:04:51,430 --> 00:04:58,960
‫Queremos que ejecute este conjunto de acciones en una ubicación y note que, aunque mis comentarios están sangrados, he

64
00:04:58,960 --> 00:05:04,060
‫decidido no sangrar el código para que coincida porque generalmente queremos hacerlo.

65
00:05:04,600 --> 00:05:08,890
‫Códigos para estar en un nivel de sangría dentro de la función.

66
00:05:09,760 --> 00:05:15,430
‫Ahora lo que puedo hacer es eliminar todo el código que teníamos anteriormente, todo lo relacionado con el vector local,

67
00:05:15,430 --> 00:05:19,420
‫mi vector establecido en una ubicación usando el vector local, puedo eliminar todo eso.

68
00:05:19,780 --> 00:05:23,530
‫Así que todo lo que tenemos ahora es todo lo relacionado con nuestros comentarios.

69
00:05:24,100 --> 00:05:27,060
‫Y también, voy a ir al archivo de encabezado y limpiar un poco las cosas aquí.

70
00:05:27,070 --> 00:05:28,660
‫Ya no necesitamos el mi vector.

71
00:05:28,660 --> 00:05:31,390
‫Ya no necesitamos las propiedades de mi ex u.

72
00:05:31,390 --> 00:05:34,270
‫Así que voy a borrar estos también.

73
00:05:34,510 --> 00:05:39,930
‫Ahora, obviamente, el CP de la plataforma móvil en realidad no hace mucho porque obtenemos la ubicación

74
00:05:39,940 --> 00:05:44,560
‫actual del actor, luego lo configuramos nuevamente, lo que básicamente no tiene ningún efecto.

75
00:05:44,680 --> 00:05:52,630
‫Así que me gustaría que intentaras actualizar la ubicación actual de la plataforma móvil en esa función de marca.

76
00:05:53,110 --> 00:05:56,470
‫Así que use los miembros X o Y como mejor le parezca.

77
00:05:56,470 --> 00:05:57,730
‫Bueno, X seguirá adelante.

78
00:05:57,730 --> 00:06:05,170
‫Y lo moverá a la derecha, luego puede agregarlo y asignarlo nuevamente al miembro, como lo hemos estado haciendo anteriormente,

79
00:06:05,170 --> 00:06:08,500
‫para actualizar la ubicación de nuestras plataformas móviles.

80
00:06:08,950 --> 00:06:15,880
‫Así que agregue uno o dos dependiendo de qué tan rápido quiera que se mueva la plataforma y luego mueva la plataforma

81
00:06:15,880 --> 00:06:20,830
‫a su ubicación de inicio porque ahora no tenemos esa variable miembro para decirle la ubicación

82
00:06:20,830 --> 00:06:23,770
‫de inicio, en realidad estamos usando la ubicación actual.

83
00:06:23,980 --> 00:06:28,690
‫Entonces, donde sea que coloques esa plataforma, ahí es donde comenzará la plataforma.

84
00:06:29,290 --> 00:06:35,140
‫Y luego me gustaría que compiles y pruebes tu código y veas si se está moviendo, como era de esperar.

85
00:06:35,380 --> 00:06:36,970
‫Pausa el video y pruébalo.

86
00:06:40,000 --> 00:06:40,320
‫Bueno.

87
00:06:40,330 --> 00:06:41,020
‫Bienvenido de nuevo.

88
00:06:41,350 --> 00:06:47,110
‫Así que vamos a colocar esta línea de código justo debajo del comentario que habla de ello, agregue

89
00:06:47,200 --> 00:06:48,970
‫el vector a esa ubicación.

90
00:06:49,630 --> 00:06:55,000
‫Y la razón por la que lo ponemos aquí es por el orden en que queremos obtener la

91
00:06:55,000 --> 00:06:56,790
‫ubicación actual, actualizarla y luego establecerla.

92
00:06:56,800 --> 00:06:59,530
‫No queremos que pase nada fuera de orden allí.

93
00:07:00,100 --> 00:07:04,750
‫Si tuviéramos que actualizarlo antes de crear la variable, bueno, esa variable no existiría.

94
00:07:04,750 --> 00:07:06,250
‫Recuerde, es una variable local.

95
00:07:06,550 --> 00:07:10,870
‫Solo existe una vez que lo creamos dentro de esta llamada particular de la función.

96
00:07:11,260 --> 00:07:16,690
‫Y si lo hubiéramos hecho después de colocarlo en una ubicación nuevamente, esa modificación simplemente se descartaría

97
00:07:16,690 --> 00:07:19,960
‫cuando llegáramos al Brice de cierre en la función.

98
00:07:20,440 --> 00:07:29,200
‫Así que vamos a establecer la ubicación actual punto x, voy a usar igual a la ubicación actual, punto x más uno y

99
00:07:29,410 --> 00:07:33,940
‫luego pondré un punto y coma al final de la línea.

100
00:07:34,270 --> 00:07:40,030
‫Y vamos a volver a Unreal y vamos a presionar el botón de compilación.

101
00:07:40,210 --> 00:07:45,580
‫Y como mencioné, ahora debemos ir y mover esta plataforma móvil a su ubicación inicial.

102
00:07:45,590 --> 00:07:51,430
‫Así que voy a hacer clic en un personaje en tercera persona y voy a copiar su ubicación haciendo clic derecho

103
00:07:51,430 --> 00:07:56,020
‫en la ubicación, presionando copiar, luego yendo a nuestra plataforma móvil, haciendo clic derecho en su ubicación,

104
00:07:56,020 --> 00:07:56,740
‫presionando pegar.

105
00:07:56,740 --> 00:08:01,270
‫Eso pone la plataforma dentro de nuestro reproductor, que en realidad no es lo que queremos.

106
00:08:01,630 --> 00:08:09,190
‫Así que voy a moverlo un poco hacia la derecha del jugador y puedo ver si está a la altura

107
00:08:09,190 --> 00:08:09,760
‫correcta.

108
00:08:09,760 --> 00:08:15,370
‫Creo que lo haré un poco más abajo, lo cual es uno de los beneficios de usar la ubicación actual en

109
00:08:15,370 --> 00:08:19,900
‫lugar de una variable de ubicación, es que puedo ver dónde estará esta plataforma en el

110
00:08:19,900 --> 00:08:20,350
‫mundo.

111
00:08:20,890 --> 00:08:26,860
‫Entonces, si sigo adelante y presiono reproducir, pueden ver que la plataforma se está moviendo muy bien en

112
00:08:26,860 --> 00:08:27,940
‫la dirección X.

113
00:08:27,970 --> 00:08:31,440
‫Todavía puedo saltar sobre él y ser movido junto con él.

114
00:08:31,450 --> 00:08:32,260
‫Buena cosa.

115
00:08:32,560 --> 00:08:36,310
‫Ahora hemos aprendido cómo funcionan los valores de retorno de las funciones.

116
00:08:36,520 --> 00:08:42,880
‫Realmente estamos empezando a comprender muchos de los conceptos de los planos en el mundo de C++.

117
00:08:43,210 --> 00:08:44,650
‫Te veré en la próxima conferencia.

