﻿1
00:00:04,430 --> 00:00:05,660
‫Hola y bienvenido.

2
00:00:05,660 --> 00:00:11,810
‫En esta lección, veremos vectores y, en general, cosas más complicadas como estructuras

3
00:00:11,810 --> 00:00:19,610
‫en C++ y cómo podemos acceder a las partes individuales para configurarlas y obtenerlas de una estructura.

4
00:00:19,790 --> 00:00:20,420
‫Sumerjámonos.

5
00:00:21,320 --> 00:00:27,770
‫Así que hemos aprendido cómo manejar tipos de datos básicos en C++ y crear variables y asignarles e incluso hacer algo

6
00:00:27,770 --> 00:00:29,630
‫de aritmética básica con ellas.

7
00:00:29,990 --> 00:00:35,330
‫Pero, ¿y si quisiéramos tratar con tipos más complicados, como vectores y transformaciones?

8
00:00:35,930 --> 00:00:38,030
‫Bueno, el proceso es en realidad muy similar.

9
00:00:38,030 --> 00:00:41,600
‫Comencemos limpiando parte del código de prueba que ya tenemos.

10
00:00:41,600 --> 00:00:43,550
‫Voy a eliminar todas mis propiedades.

11
00:00:43,550 --> 00:00:46,460
‫Para mí, esa es la línea 26 hasta la 51.

12
00:00:47,030 --> 00:00:54,290
‫Y también voy a ir al archivo C++ y borrar las líneas 19 a 23, que es donde estoy haciendo todo el trabajo

13
00:00:54,290 --> 00:00:56,870
‫con esas variables que acabo de borrar.

14
00:00:56,870 --> 00:01:01,550
‫Así que ahora Begin Play está completamente vacío y volvemos esencialmente al punto de partida.

15
00:01:02,660 --> 00:01:06,290
‫Entonces, ahora lo que quiero hacer es agregar una nueva propiedad de usted.

16
00:01:06,290 --> 00:01:15,980
‫Entonces, todas las mayúsculas nuevamente se editan en cualquier lugar y le daré a esto el tipo de vector F, observe la mayúscula F mayúscula, la

17
00:01:15,980 --> 00:01:22,250
‫V mayúscula y así es como tratamos los vectores que hemos tratado en Blueprint son los

18
00:01:22,250 --> 00:01:27,410
‫mismos vectores bajo el superficie, pero así es como lo escribimos en C++.

19
00:01:27,410 --> 00:01:33,680
‫La F que la precede solo nos deja saber que esta es una estructura de la misma manera que la A que precede a

20
00:01:33,680 --> 00:01:34,580
‫la plataforma móvil.

21
00:01:34,580 --> 00:01:36,800
‫Déjanos saber que eso es un actor.

22
00:01:37,040 --> 00:01:38,360
‫Eso no es una cosa de C++.

23
00:01:38,360 --> 00:01:43,970
‫Esa es una convención de nomenclatura irreal para nombrar las diferentes clases, estructuras y tipos.

24
00:01:44,720 --> 00:01:47,240
‫Entonces lo que vamos a hacer es darle su nombre a esta variable.

25
00:01:47,240 --> 00:01:50,840
‫Y esto funciona exactamente igual que si fuera una carroza o un evento.

26
00:01:51,170 --> 00:01:53,540
‫Podemos llamarlo mi flotador, por ejemplo.

27
00:01:53,540 --> 00:01:54,770
‫No debe tener espacios.

28
00:01:55,280 --> 00:01:59,060
‫Y si tuviéramos que poner un punto y coma al final de la línea aquí, entonces eso es todo.

29
00:01:59,060 --> 00:02:06,110
‫Hemos declarado una nueva variable que será visible en nuestro panel de detalles en el editor, pero eso no es suficiente

30
00:02:06,110 --> 00:02:07,040
‫para mí.

31
00:02:07,040 --> 00:02:13,760
‫De hecho, me gustaría darle a esto un valor predeterminado que sea diferente del 000 predeterminado.

32
00:02:14,150 --> 00:02:17,630
‫Para hacer eso, necesitamos actualizar nuestro glosario con un nuevo término.

33
00:02:17,630 --> 00:02:24,830
‫Necesitamos un constructor, que es esencialmente algo en C++ que crea una nueva estructura o valor de clase A.

34
00:02:25,280 --> 00:02:33,050
‫Entonces, si tuviéramos que crear un constructor para el vector, la forma en que esto funcionaría es que queremos asignar un valor

35
00:02:33,050 --> 00:02:34,640
‫para que presionemos igual.

36
00:02:34,640 --> 00:02:40,520
‫Y, por lo general, cuando trabajábamos con números enteros o flotantes, podíamos usar algo como uno o verdadero

37
00:02:40,520 --> 00:02:46,040
‫que se incorporaron en valores que nos permitieron establecer el valor de esos tipos básicos.

38
00:02:46,400 --> 00:02:53,090
‫Pero cuando tenemos tipos más elaborados como una estructura, necesitamos usar el constructor y el constructor siempre tendrá

39
00:02:53,090 --> 00:02:59,120
‫el mismo nombre que el tipo de datos, por lo que se escribirá exactamente igual.

40
00:02:59,450 --> 00:03:05,870
‫Y luego abres algunos paréntesis y dentro de los paréntesis das los valores que quieres.

41
00:03:05,870 --> 00:03:08,570
‫Entonces X, Y y Z es lo que forma un vector.

42
00:03:08,570 --> 00:03:14,990
‫Entonces podríamos tener uno, dos y tres separados por comas, y luego cerramos los paréntesis y pusimos punto y coma

43
00:03:14,990 --> 00:03:16,760
‫al final de la línea.

44
00:03:17,090 --> 00:03:23,420
‫Y eso dará un valor predeterminado de uno, dos y tres en X, Y y Z para este vector.

45
00:03:23,420 --> 00:03:24,290
‫Probémoslo.

46
00:03:24,680 --> 00:03:27,200
‫Vuelva a Unreal y presione el botón de compilación.

47
00:03:27,680 --> 00:03:34,520
‫Y una vez que se complete con éxito, podemos asegurarnos de que tenemos la Ley de plataforma móvil seleccionada en nuestro esquema y

48
00:03:34,520 --> 00:03:40,010
‫echar un vistazo al panel de detalles y ver que, de hecho, tenemos una nueva propiedad llamada

49
00:03:40,010 --> 00:03:40,700
‫My Float.

50
00:03:40,700 --> 00:03:47,180
‫Los demás se han quitado y los valores en sus diferentes posiciones, X, Y y Z es uno, dos

51
00:03:47,180 --> 00:03:49,430
‫y tres tal y como esperábamos.

52
00:03:50,180 --> 00:03:51,050
‫Eso es genial.

53
00:03:51,200 --> 00:03:57,560
‫Pero, ¿y si quisiera apoderarme de estos valores y quizás pegarlos en otra propiedad?

54
00:03:57,710 --> 00:04:04,010
‫Entonces, si tuviera otra propiedad que está marcada como agregada en cualquier lugar para poder verla en

55
00:04:04,580 --> 00:04:12,860
‫el inspector, escribiré float llamado my x y lo pondré en cero por defecto solo para que podamos ver que lo estamos cambiando.

56
00:04:13,730 --> 00:04:20,690
‫Y lo que quiero hacer es tomar el valor x de my float al comenzar a jugar y quiero establecerlo en

57
00:04:20,690 --> 00:04:22,130
‫la variable my x.

58
00:04:22,610 --> 00:04:30,320
‫Así que vayamos al archivo C++ y comencemos a jugar después de la línea que dice super grande en juego, vamos

59
00:04:30,320 --> 00:04:37,970
‫a establecer mi X igual a lo que queremos obtener algo de mi vector, pero no queremos todo de mi

60
00:04:37,970 --> 00:04:38,570
‫vector

61
00:04:38,570 --> 00:04:39,800
‫Eso sería un error.

62
00:04:39,800 --> 00:04:44,570
‫No podemos establecer un vector en un flotador, solo queremos la parte x de ese vector.

63
00:04:45,050 --> 00:04:48,620
‫Bueno, para entender eso, necesitamos entender el concepto de un operador.

64
00:04:48,740 --> 00:04:53,030
‫Los operadores son símbolos en C++ que hacen algo.

65
00:04:53,030 --> 00:04:54,410
‫Ya hemos visto algunos.

66
00:04:54,650 --> 00:04:57,890
‫Hemos visto el operador más, que suma dos cosas.

67
00:04:57,890 --> 00:04:59,450
‫También hay un operador menos.

68
00:04:59,450 --> 00:05:03,770
‫Está el operador de igualdad, el operador de igualdad, que asigna.

69
00:05:03,890 --> 00:05:04,270
‫Cosas.

70
00:05:04,270 --> 00:05:06,710
‫Así que estamos usando esto aquí en la línea 19.

71
00:05:06,710 --> 00:05:11,750
‫Ese es un operador que asigna el valor de mi vector a mi X.

72
00:05:12,350 --> 00:05:18,620
‫Y luego tenemos un operador más, que necesitamos saber cuál es el operador DOT.

73
00:05:18,980 --> 00:05:23,300
‫Es un operador que obtiene algo de una estructura o clase.

74
00:05:23,390 --> 00:05:27,200
‫Entonces queremos obtener la X desde dentro de mi vector.

75
00:05:27,200 --> 00:05:33,860
‫Así que usamos un operador de punto, hacemos punto x ahora no usamos un espacio aquí entre mi vector y la x.

76
00:05:34,130 --> 00:05:40,400
‫Simplemente dejamos que estos se ejecuten juntos, así es como normalmente dejamos las cosas, aunque no es necesariamente

77
00:05:40,400 --> 00:05:41,930
‫un error poner espacios.

78
00:05:42,350 --> 00:05:51,260
‫Así que tenemos mi vector punto x debe obtener el valor x del vector y ponerlo en el flotador de mi x.

79
00:05:51,710 --> 00:05:57,470
‫Así que ponemos un punto y coma al final de la línea y, como de costumbre, estoy ignorando los garabatos rojos porque a

80
00:05:57,470 --> 00:06:00,290
‫veces tardan mucho en actualizarse y otras veces no son correctos.

81
00:06:00,770 --> 00:06:06,530
‫Y luego vamos a entrar en la codificación en vivo y presionar el botón que vuelve a compilar y simplemente

82
00:06:06,530 --> 00:06:08,300
‫verificar si obtenemos un resultado exitoso.

83
00:06:08,750 --> 00:06:11,060
‫Y no, verás, tenemos una falla de construcción.

84
00:06:11,060 --> 00:06:16,760
‫Y si observa el error que dice que mi vector es un identificador no declarado y eso se debe a que

85
00:06:16,760 --> 00:06:21,620
‫cometí un error tipográfico, llamé al vector F mi flotador y probablemente esté gritando en sus pantallas.

86
00:06:21,620 --> 00:06:26,150
‫Pero es bueno mostrarles que incluso los expertos, los programadores, cometen errores.

87
00:06:26,150 --> 00:06:30,710
‫Queríamos llamarlo mi vector, así que voy a volver al archivo principal y

88
00:06:30,950 --> 00:06:35,540
‫cambiarle el nombre a mi vector, lo que debería eliminar el problema en mi cerebro.

89
00:06:35,720 --> 00:06:38,660
‫Sigamos adelante y hagamos clic en el botón de compilación nuevamente.

90
00:06:38,960 --> 00:06:44,130
‫Y eso solo te da una idea de cómo es cuando cometes errores, obtienes un error de compilación.

91
00:06:44,130 --> 00:06:45,230
‫Pasa todo el tiempo.

92
00:06:45,230 --> 00:06:48,230
‫De hecho, es muy raro no cometer errores.

93
00:06:48,230 --> 00:06:54,740
‫La primera vez que haga algo, continuaremos y presionaremos reproducir y veremos qué valor obtenemos en el

94
00:06:54,770 --> 00:06:56,270
‫panel de detalles.

95
00:06:56,270 --> 00:07:05,000
‫Puede ver que mi x se ha establecido en uno porque ese era el valor en el componente x de la variable mi

96
00:07:05,000 --> 00:07:05,720
‫vector.

97
00:07:06,170 --> 00:07:09,740
‫Así que me gustaría desafiarte a establecer un valor de vector.

98
00:07:09,740 --> 00:07:11,870
‫Hemos estado obteniendo valores del vector.

99
00:07:11,870 --> 00:07:13,010
‫Ahora intentemos configurarlos.

100
00:07:13,010 --> 00:07:17,000
‫Básicamente intente usar el operador de punto para establecer un valor.

101
00:07:17,420 --> 00:07:25,760
‫Intente voltear los dos lados de ese igual para que tengamos my X a la derecha y my vector over a

102
00:07:25,760 --> 00:07:26,840
‫la izquierda.

103
00:07:27,140 --> 00:07:30,260
‫¿Y si cambia a Y o z?

104
00:07:30,500 --> 00:07:33,260
‫¿Hay alguna diferencia que tira de vídeo y tiene un ir?

105
00:07:36,740 --> 00:07:37,390
‫Bueno.

106
00:07:37,400 --> 00:07:37,900
‫Bienvenido de nuevo.

107
00:07:37,910 --> 00:07:40,580
‫Así que voy a intentar darle la vuelta a estos dos.

108
00:07:40,580 --> 00:07:44,930
‫Pasemos a C++ y empecemos a jugar en su lugar.

109
00:07:44,930 --> 00:07:52,730
‫Lo que voy a decir es que mi vector punto y es igual a mi x y luego pongo un punto y coma al final de la línea.

110
00:07:52,970 --> 00:07:57,530
‫Y así es como también podemos establecer valores dentro de una estructura.

111
00:07:57,920 --> 00:08:06,920
‫Así que volvamos a Unreal y recompilemos y luego podemos seguir adelante y establecer algún valor en mi X.

112
00:08:06,920 --> 00:08:08,690
‫Voy a poner el valor de cinco aquí.

113
00:08:10,070 --> 00:08:15,410
‫Luego seguiré adelante, jugaré y echaré un vistazo al panel de detalles de la plataforma móvil.

114
00:08:15,740 --> 00:08:24,320
‫Y, por supuesto, el valor y de mi vector se ha actualizado en el juego inicial con el valor de mi x.

115
00:08:24,860 --> 00:08:26,000
‫Así que felicidades

116
00:08:26,000 --> 00:08:33,020
‫Hemos visto cómo usar tipos más complicados, los tipos compuestos como estructuras en C++.

117
00:08:33,020 --> 00:08:34,640
‫Te veré en la próxima conferencia.

