‫Hola y bienvenido.
‫En esta lección, implementaremos nuestras propias funciones de miembro de clase, mover plataforma y
‫rotar plataforma.
‫Vamos a ver cómo podemos configurarlos para que puedan aceptar argumentos.
‫Y nos ayudará a ordenar un poco nuestro código.
‫Vamos a sumergirnos y ver cómo funciona esto.
‫Entonces, hasta ahora, hemos estado usando las funciones de C++ que ya se crearon para nosotros.
‫Hemos estado usando tomar estos y podemos jugar en términos de escribir su funcionalidad.
‫Y también hemos estado usando funciones que otras personas han escrito para nosotros.
‫Los hemos estado llamando como obtener ubicación activa y obtener nombre.
‫Ahora, ¿cómo podemos crear nuevas funciones propias para ayudar a organizar nuestro código y mantener estas funciones pequeñas
‫y todo mucho más legible?
‫Bueno, ya tenemos los bloques de construcción básicos en su lugar al llegar al final de la sección.
‫Entendemos mucho más sobre la sintaxis de C++.
‫Entonces, lo que quiero hacer es esencialmente crear una nueva función en la plataforma móvil que nos permita tener
‫solo la entrada, digamos llamar a la plataforma móvil.
‫¿Por qué quiero hacer eso?
‫Bueno, porque poder hacer una llamada de función como esta llamada MOVE Platform, realmente habla de lo que estamos
‫tratando de hacer en este momento.
‫Tenemos muchas cosas en marcha en tecnología y no tengo del todo claro por qué estamos haciendo todas estas cosas
‫si solo vengo y lo miro, si entré en tecnología y vi una función que dice Mover plataforma , bueno,
‫de repente tengo el contexto de lo que debería estar haciendo todo esto, y no necesito
‫un solo comentario para decirme qué está pasando.
‫Esto será particularmente útil cuando agreguemos a la mezcla la posibilidad de rotar la plataforma
‫también.
‫Entonces, ¿cómo definimos las funciones de declaración?
‫Bueno, el aspecto de la declaración se rehace en el encabezado del archivo.
‫Ahí es donde básicamente decimos cabezas hacia C++, vamos a tener una función que se
‫verá así.
‫Y luego en C++ es donde realmente definimos la función.
‫Le damos el cuerpo, le decimos exactamente a C++.
‫Así es como funciona la función.
‫Y echemos un vistazo a cómo podemos hacer esto.
‫Tenemos algunos ejemplos de funciones y tenemos grandes en juego, tenemos tecnología.
‫Y es un buen momento para que veamos las diferentes secciones que tenemos en un archivo de encabezado.
‫Tenemos public y protected siendo mencionado aquí y public siendo mencionado nuevamente.
‫Ahora, que significa esto?
‫Estas palabras clave con dos puntos al final definen básicamente un apartado de accesibilidad.
‫Estas funciones, desde dónde se puede acceder.
‫Hemos visto más en la seguridad normal.
‫Esta es una función a la que llamamos en un vector F, pero la llamamos desde otra clase, no desde
‫dentro de un vector F.
‫Esto significa que la accesibilidad de esta función debe ser pública.
‫Ahora dejaremos a un lado protegido solo por un minuto porque ahí se complica un poco más.
‫Pero hay otro tipo de palabra clave que podemos utilizar, que es private.
‫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
‫estas secciones y vamos a poner dos puntos al final.
‫Y eso significa que todo lo que viene después hasta la siguiente sección, la siguiente palabra
‫clave que pongo aquí, va a ser privado.
‫Eso significa que tomamos todas estas variables y dijimos: Oye, ninguna otra clase puede tocarlas.
‫Y esa suele ser la mejor práctica que no hemos hecho hasta este momento porque no quería que
‫las cosas fueran demasiado confusas para usted.
‫Pero las variables en las clases generalmente deberían ser su propio negocio.
‫Es uno de los inquilinos principales de la programación orientada a objetos que dejamos que las clases administren
‫sus propias variables, y solo accedemos a ellas usando funciones que la clase indica como públicas.
‫Entonces, lo que vamos a hacer aquí es agregar algunas funciones privadas más aquí porque no queremos
‫que se llame a algo como Move Platform desde fuera de la clase.
‫Queremos que sea administrado por nuestra propia función tecnológica.
‫Entonces, ¿cómo definimos una función privada?
‫Bueno, lo ponemos en una sección privada.
‫Así que tenemos nuestra palabra clave privada aquí.
‫Sin embargo, lo pondré después de nuestras variables y comenzaremos con el tipo de retorno.
‫Y si nuestra función no devuelve nada, simplemente escribimos void para indicar que no hay retorno de
‫esta función.
‫Luego le damos un nombre de función.
‫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
‫paréntesis y luego un punto y coma para terminar la línea y decir, está bien, eso es
‫todo.
‫Esa es la función que quiero declarar aquí en el archivo de encabezado y todo lo que hace.
‫Dice Esta es la forma de la función.
‫Este es el regreso.
‫Estos son los parámetros que toma, el nombre y la clase a la que pertenece.
‫Ahora, para darle una implementación, tenemos que definirlo en el archivo C++.
‫Así que vamos para allá.
‫Y al final del archivo, justo fuera de las llaves, aquí es donde lo hacemos.
‫Empezamos de nuevo con el tipo de retorno.
‫Entonces eso será nulo porque estamos dentro de un archivo C++, no estamos dentro de las llaves de
‫una clase.
‫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
‫de plataforma móvil.
‫Entonces escribimos el nombre de la clase, que es una plataforma móvil, recordando que hay un prefijo para decir que
‫es un actor.
‫Luego usamos dos puntos, dos puntos, el operador de resolución de alcance, y luego usamos el nombre de
‫la función que estamos definiendo, que es la plataforma MOVE.
‫Y luego usamos el mismo conjunto de parámetros que usamos en el archivo de encabezado.
‫En este caso, teníamos un conjunto de parámetros vacío, así que solo tenemos los paréntesis.
‫Y luego, en lugar de poner un punto y coma al final de esta línea en una línea nueva, ponemos una
‫llave de apertura y la correspondiente llave de cierre.
‫Y entre estas llaves donde ponemos el código de nuestra función, fantástico.
‫Entonces, lo que quiero hacer ahora es tratar de decir, bueno, toda esta funcionalidad que tenemos aquí y, de hecho,
‫voy a eliminar los comentarios porque ya no los necesitamos.
‫Eran el pseudocódigo que usamos para implementar esto, pero ahora ha cumplido su propósito.
‫Entendemos lo que hacen las líneas de código.
‫Voy a sacar todo menos la función de plataforma de movimiento fuera de tomar y copiarlo y pegarlo en nuestra función de
‫plataforma de MOVER en su lugar.
‫Entonces, esto debería funcionar más o menos igual porque cuando entramos en tecnología, llamamos a la plataforma de movimiento y simplemente
‫ejecuta la misma pieza de código.
‫Excepto que ahora lo hemos incluido en una función y nos facilita leerlo y potencialmente reutilizarlo en
‫el futuro.
‫Pero si haces esto, notarás que hay un problema.
‫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
‫la tecnología.
‫Entonces, si queremos controlar eso, necesitamos tener un parámetro en nuestra función.
‫Entonces, cuando definimos parámetros, tenemos que hacerlo en dos lugares.
‫Al igual que cuando definimos la función, volvemos al archivo de encabezado y entre
‫paréntesis de nuestra función de plataforma MOVE.
‫Aquí es donde decimos qué parámetros queremos y es exactamente como definir una variable.
‫Necesitas darle un tipo y darle un nombre.
‫Así que vamos a decir que va a ser un tipo flotante y podemos llamarlo tiempo Delta.
‫No tiene que ser el mismo nombre.
‫Podríamos llamarlo así.
‫Podríamos llamarlo tiempo.
‫Pero es más fácil darle el mismo nombre porque entonces es obvio para cualquiera que lo lea lo que se debe
‫pasar aquí.
‫Luego, en el archivo C++, debemos hacer coincidir la lista de parámetros.
‫Entonces, nuevamente, puede hacer esto copiando y pegando o escribiéndolo.
‫Si lo escribe, asegúrese de no cometer errores tipográficos porque el compilador se quejará.
‫Así que vamos a pasar un elemento flotante llamado Delta Time como parámetro o definirlo como un parámetro para mover
‫la plataforma, pero en realidad no lo hemos pasado como un argumento para mover la plataforma en tick.
‫Y verán que tengo una pequeña línea roja ondulada aquí archivo muy, muy.
‫Dice que hay muy pocos argumentos en la llamada a la función porque lo he definido en el
‫archivo de encabezado y ahora en C++, además de requerir un parámetro de tipo flotante.
‫Así que debo proporcionar ese parámetro.
‫Así que me aseguraré de que ese sea el parámetro que estoy proporcionando.
‫El valor que proporciono proviene de la variable de tiempo Delta o el parámetro de tiempo Delta de tick.
‫Así que estamos enhebrando el valor, el valor se pasa a tick, luego se pasa a
‫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
‫la plataforma.
‫Así que me gustaría que crearan su propia función de rotación de plataforma que llamaremos desde TIC.
‫Entonces, lo agregará al archivo de encabezado como lo hicimos para nuestra función de plataforma MOVE.
‫También lo agregaremos al archivo C++ de la misma manera.
‫Así que tome sus sugerencias de la forma en que lo hicimos para esas funciones y luego llámelo desde la función tick.
‫Asegúrese de pasar la hora delta y de definir cualquier parámetro que le permita pasar la hora delta
‫e implementar el cuerpo de la plataforma Rotate para que cierre la sesión de un mensaje.
‫En realidad, todavía no va a rotar la plataforma, sino como un marcador de posición para asegurarse de que realmente se
‫llame un mensaje de registro utilizando el registro de la interfaz de usuario del que hemos aprendido.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a comenzar en el archivo de encabezado y en su mayoría vamos a hacer lo mismo que hicimos con
‫nuestra plataforma MOVE.
‫Lo pondremos en una sección privada para que solo sea accesible dentro de nuestra clase.
‫Le daré un tipo de retorno nulo, lo llamaremos plataforma giratoria.
‫Vamos a abrir la lista de parámetros.
‫Y en él vamos a poner un parámetro que tendrá tipo
‫flotante, lo llamaremos Delta time y cerraremos los parámetros y terminaremos con un punto y coma.
‫Ahora, la mayor parte de lo que hacemos en el archivo C++ es exactamente lo mismo que en el encabezado del archivo.
‫Así que en realidad voy a copiar esta línea, ir al archivo C++ y mostrarles qué es diferente.
‫Así que voy a ir a una nueva línea vacía al final del archivo, pegarla y luego, lo que es diferente aquí,
‫necesitamos el operador de resolución de alcance y el nombre de la clase.
‫Así que vamos a tener una plataforma móvil, dos puntos, una plataforma giratoria de dos puntos.
‫Luego tenemos la lista de parámetros y luego no necesitamos el punto y coma al final.
‫Así que elimine el punto y coma, agregue una nueva línea y ataque las llaves en lugar de una nueva línea entre
‫esas dos llaves.
‫Entonces, lo que queremos hacer aquí es imprimir un mensaje de registro.
‫Así que voy a escribir tu registro, presiona enter.
‫Solo va a ser un simple mensaje de visualización.
‫Y en el texto voy a poner el nombre de nuestra plataforma.
‫Así que va a ser un porcentaje, luego vamos a escribir punto giratorio, punto, punto, y luego voy a
‫pasar el nombre.
‫Ahora podríamos poner esto en una variable, pero debido a que aquí es una línea
‫bastante corta, voy a escribir estrella, obtener el nombre y luego colocar los paréntesis para que esencialmente llamemos aquí al obtener el
‫nombre.
‫Esa es la expresión que se apodera de la cadena.
‫Y luego estamos convirtiendo ese resultado para ponerlo en nuestro mensaje de registro.
‫Entonces, desde todas nuestras plataformas, espero ver que se imprima la rotación, pero esto solo sucederá si realmente
‫lo llamo en tecnología.
‫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.
‫Y tenemos que ver.
‫Cuando abro los paréntesis, me da una pista de que necesito pasar un argumento para el tiempo Delta.
‫De nuevo, vamos a pasar esa misma variable de tiempo Delta desde aquí.
‫Y como dije, los nombres aquí no tienen que ser los mismos.
‫Por lo tanto, este tiempo delta debe coincidir con el tiempo delta dentro de la tecnología.
‫Pero podríamos optar por llamar a la variable dentro de la fecha de la plataforma de rotación en su lugar.
‫Y en cualquier lugar que lo usemos dentro de la plataforma de rotación, tendríamos que usar ADT, el nombre del parámetro
‫y el argumento básicamente puede ser diferente.
‫Así que saltemos a Unreal y presionemos compilar porque hemos realizado algunos cambios en el archivo de encabezado.
‫La compilación será un poco más larga que cuando acabamos de cambiar el archivo C++ y una vez que se
‫haya completado la compilación, continuaremos y presionaremos reproducir y abriremos el registro de salida.
‫Y puede ver que, de hecho, estamos mostrando mensajes de registro sobre la rotación de cada una de las plataformas.
‫Así que parece que nuestra función está siendo efectivamente llamada en tecnología.
‫Buena cosa.
‫Ahora entendemos cómo crear nuestras propias funciones que son miembros de una clase.
‫Es una herramienta muy útil para reutilizar un código, pero también para organizarlo tal como estaba en Blueprint.
‫Te veré en la próxima conferencia.