‫Hola y bienvenido.
‫En esta lección, vamos a aprender cómo podemos obtener resultados de las funciones en C++.
‫Y vamos a usar esto para simplificar enormemente nuestro código y comenzar a implementar parte del pseudocódigo que
‫hemos escrito.
‫Sumerjámonos.
‫Entonces, antes de intentar comprender los valores de retorno de las funciones, hagamos un breve desvío y entendámoslo.
‫Dos conceptos añaden dos conceptos más a nuestro colosalmente.
‫Así que la primera es la expresión.
‫Una expresión es un fragmento de código que produce un valor.
‫Y está la declaración que es un fragmento de código que es una acción a realizar.
‫Ahora, estos dos realmente tienen una relación en el sentido de que una expresión casi siempre es una declaración en la
‫que para calcular el valor de un fragmento de código, debe ser una acción a realizar.
‫Pero lo mismo no es necesariamente cierto al revés.
‫Una declaración no siempre le dará un valor.
‫Así que echemos un vistazo a algunos ejemplos de expresiones y algunas cosas que no son del código que
‫ya hemos escrito.
‫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
‫la variable my vector.
‫Lo mismo es cierto para el vector local.
‫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
‫z más 100.
‫Eso en sí mismo también es una expresión, porque el vector local punto z te dio el valor dentro del miembro
‫Z.
‫Y cuando sumas 100, eso te da un nuevo valor que tiene la suma de 100.
‫Así que todas estas son expresiones.
‫Sin embargo, algo que no es una expresión es cuando declaramos nuestro vector local, cuando dijimos vector, vector local es igual a mi
‫vector y pusimos un punto y coma al final de la línea.
‫No podemos usar eso para obtener un valor.
‫No hay valor allí.
‫Simplemente le está diciendo a C++ que aquí hay una acción para que la realices.
‫Quiero que crees un nuevo vector local.
‫Así que eso no es una expresión.
‫Sin embargo, algo que es una expresión es obtener la ubicación del actor.
‫Es una función a la que llamamos porque aquí hay paréntesis al final.
‫En realidad no tenemos ningún argumento aquí.
‫Esta es una lista vacía de argumentos, pero está llamando a algo.
‫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
‫valor de lo que devuelve la función.
‫Y esto es esencialmente lo mismo que los bolígrafos de salida que hemos visto anteriormente en un plano.
‫Excepto que, a diferencia de los planos, solo puede tener un valor de salida de una función.
‫Solo hay un valor de retorno.
‫Entonces eso es lo que podemos usar aquí donde hemos escrito nuestro pseudocódigo que dice obtener la ubicación actual.
‫Ahí es donde vamos a hacer eso.
‫Vamos a obtener la ubicación usando nuestra ubicación de acceso de obtención.
‫Así que vamos a crear una nueva variable local aquí.
‫Vamos a tener una nueva variable local llamada F de tipo efecto.
‫Tiene que ser un vector de tipo S porque ese es el tipo que se devuelve al obtener
‫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.
‫de paréntesis coincidentes y luego un punto y coma para terminar la línea.
‫Entonces, si diseccionamos un poco esta línea, podemos ver que este bit aquí, la ubicación del acto de obtención y
‫el paréntesis es la expresión que nos está dando el valor, que es la ubicación actual del actor.
‫Luego estamos haciendo una asignación a la ubicación actual, que también se declara aquí.
‫Así que en esta línea, toda esta línea no es una expresión.
‫No tiene ningún valor, es una declaración.
‫Y, por lo general, puede distinguir una declaración porque en C++ termina en punto y coma.
‫Bien, esto esencialmente nos permitirá eliminar mi vector y los vectores locales que
‫hemos estado usando anteriormente porque deberíamos poder actualizar nuestra variable local aquí, esta
‫ubicación actual que obtuvimos del ubicación de nuestro actor.
‫Entonces, lo que vamos a hacer es más abajo aquí, tenemos un comentario que dice, establece la ubicación.
‫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
‫y coma al final de la línea para decir que todo esto
‫es una declaración.
‫Queremos que ejecute este conjunto de acciones en una ubicación y note que, aunque mis comentarios están sangrados, he
‫decidido no sangrar el código para que coincida porque generalmente queremos hacerlo.
‫Códigos para estar en un nivel de sangría dentro de la función.
‫Ahora lo que puedo hacer es eliminar todo el código que teníamos anteriormente, todo lo relacionado con el vector local,
‫mi vector establecido en una ubicación usando el vector local, puedo eliminar todo eso.
‫Así que todo lo que tenemos ahora es todo lo relacionado con nuestros comentarios.
‫Y también, voy a ir al archivo de encabezado y limpiar un poco las cosas aquí.
‫Ya no necesitamos el mi vector.
‫Ya no necesitamos las propiedades de mi ex u.
‫Así que voy a borrar estos también.
‫Ahora, obviamente, el CP de la plataforma móvil en realidad no hace mucho porque obtenemos la ubicación
‫actual del actor, luego lo configuramos nuevamente, lo que básicamente no tiene ningún efecto.
‫Así que me gustaría que intentaras actualizar la ubicación actual de la plataforma móvil en esa función de marca.
‫Así que use los miembros X o Y como mejor le parezca.
‫Bueno, X seguirá adelante.
‫Y lo moverá a la derecha, luego puede agregarlo y asignarlo nuevamente al miembro, como lo hemos estado haciendo anteriormente,
‫para actualizar la ubicación de nuestras plataformas móviles.
‫Así que agregue uno o dos dependiendo de qué tan rápido quiera que se mueva la plataforma y luego mueva la plataforma
‫a su ubicación de inicio porque ahora no tenemos esa variable miembro para decirle la ubicación
‫de inicio, en realidad estamos usando la ubicación actual.
‫Entonces, donde sea que coloques esa plataforma, ahí es donde comenzará la plataforma.
‫Y luego me gustaría que compiles y pruebes tu código y veas si se está moviendo, como era de esperar.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a colocar esta línea de código justo debajo del comentario que habla de ello, agregue
‫el vector a esa ubicación.
‫Y la razón por la que lo ponemos aquí es por el orden en que queremos obtener la
‫ubicación actual, actualizarla y luego establecerla.
‫No queremos que pase nada fuera de orden allí.
‫Si tuviéramos que actualizarlo antes de crear la variable, bueno, esa variable no existiría.
‫Recuerde, es una variable local.
‫Solo existe una vez que lo creamos dentro de esta llamada particular de la función.
‫Y si lo hubiéramos hecho después de colocarlo en una ubicación nuevamente, esa modificación simplemente se descartaría
‫cuando llegáramos al Brice de cierre en la función.
‫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
‫luego pondré un punto y coma al final de la línea.
‫Y vamos a volver a Unreal y vamos a presionar el botón de compilación.
‫Y como mencioné, ahora debemos ir y mover esta plataforma móvil a su ubicación inicial.
‫Así que voy a hacer clic en un personaje en tercera persona y voy a copiar su ubicación haciendo clic derecho
‫en la ubicación, presionando copiar, luego yendo a nuestra plataforma móvil, haciendo clic derecho en su ubicación,
‫presionando pegar.
‫Eso pone la plataforma dentro de nuestro reproductor, que en realidad no es lo que queremos.
‫Así que voy a moverlo un poco hacia la derecha del jugador y puedo ver si está a la altura
‫correcta.
‫Creo que lo haré un poco más abajo, lo cual es uno de los beneficios de usar la ubicación actual en
‫lugar de una variable de ubicación, es que puedo ver dónde estará esta plataforma en el
‫mundo.
‫Entonces, si sigo adelante y presiono reproducir, pueden ver que la plataforma se está moviendo muy bien en
‫la dirección X.
‫Todavía puedo saltar sobre él y ser movido junto con él.
‫Buena cosa.
‫Ahora hemos aprendido cómo funcionan los valores de retorno de las funciones.
‫Realmente estamos empezando a comprender muchos de los conceptos de los planos en el mundo de C++.
‫Te veré en la próxima conferencia.