‫Hola y bienvenido.
‫En esta lección, aprenderemos acerca de las sentencias if, esencialmente sentencias de rama de C++,
‫y las usaremos para enviar nuestra plataforma hacia adelante y hacia atrás.
‫Sumerjámonos.
‫Así que ahora hay un par de lugares en los comentarios donde mencionamos que deberíamos hacer algo
‫si hemos ido demasiado lejos.
‫¿Cómo hacemos esto si.
‫Bueno, anteriormente en Blueprint, hicimos eso si tenemos un nodo de rama.
‫Ahora, en C++, hay un concepto similar y se llama sentencia if.
‫Así que aquí hay un nodo de rama que teníamos como ejemplo anteriormente.
‫Y pueden ver que teníamos esta variable que dice, tengo hambre, es un valor booleano, y
‫podríamos ponerla en la condición y luego podríamos tener una rama de ejecución verdadera o una rama de ejecución falsa
‫y podríamos ejecutar funciones de código.
‫Cualquier cosa en Blueprint en C ++, es muy similar excepto que es textual.
‫Así que tendríamos una variable llamada I'm Hungry, que es un valor booleano, y podemos decir si y tener paréntesis alrededor de
‫eso.
‫Luego abriríamos algunas llaves después de nuestra declaración if a menudo en la siguiente línea, y luego dentro de
‫estas llaves podemos ejecutar las cosas que deberían suceder si es cierto.
‫Así que estamos diciendo que si tengo hambre, como comida chatarra mientras la esposa no está mirando y luego podemos cerrar
‫las llaves para decir, está bien, ese es el final de esto.
‫Eso debería suceder condicionalmente.
‫Y luego hay una opción que si queremos poner una rama falsa, si
‫queremos conectar algo con lo falso aquí, entonces ponemos una palabra clave else y podemos comenzar un segundo conjunto de llaves.
‫Y aquí podríamos seguir jugando videojuegos y luego podemos cerrar las llaves.
‫Ahora aquí podemos tener tantas líneas como queramos entre estas llaves, no es necesario que
‫haya una sola línea.
‫Por lo tanto, podría agregar mucho código aquí si lo desea, o simplemente puede tener una sola línea.
‫Y también con la variable aquí, no tiene que ser una variable que se conecte a una declaración if.
‫Puede ser cualquier expresión que devuelva un valor booleano.
‫Así que puedes llamar un poco a una función aquí.
‫Podría usar un operador para obtener un resultado diferente.
‫Así que hay algunas opciones diferentes disponibles para nosotros.
‫Pero antes de nada de eso, necesitamos configurar qué tan lejos puede llegar esta plataforma antes de que deba
‫regresar y hacer eso.
‫Necesitamos una nueva propiedad.
‫Actualmente tenemos nuestra distancia movida como visible en cualquier lugar.
‫Vamos a crear uno nuevo justo arriba aquí, algunas propiedades que deben agregarse en cualquier lugar porque queremos
‫poder configurarlo en el editor.
‫Y usaré la misma categoría de plataforma móvil desde arriba y luego hacia abajo aquí, será de tipo flotante
‫porque será una distancia y la llamaré la distancia de movimiento así cuando se le dé
‫una valor por defecto, voy a darle 100 unidades por defecto.
‫Pero obviamente podemos anular eso, cambiarlo en el editor y luego podemos hacer uso de esto
‫en el archivo C++.
‫Entonces, la forma en que vamos a hacer esto es que ya hemos movido nuestra distancia variable.
‫De hecho, no quiero poder observar más, así que voy a eliminar la propiedad visible en cualquier lugar y la
‫variable de movimiento de distancia del archivo de encabezado.
‫Luego voy a volver a C++ y lo declararemos como una variable local en su lugar.
‫Entonces, la manera fácil de cambiar eso es colocar un flotador frente al movimiento de distancia que básicamente lo declara como una variable
‫local aquí dentro de la tecnología, lo que significa que sabemos que está completamente nuevo cada vez
‫que lo usamos.
‫Así que ahora tenemos que revertir la dirección de quién fue demasiado lejos.
‫Entonces, la forma en que podemos hacer esto es que podemos usar operadores menores o iguales o iguales o mayores que que hemos visto
‫en el pasado como nodos en el modelo.
‫Pero ahora podemos usarlos como operadores como lo haríamos con suma o multiplicación.
‫Y la forma en que podemos hacer esto es decir, está bien, bueno, hemos movido la distancia.
‫¿Es esto mayor que en la distancia de movimiento?
‫Así que podemos usar el símbolo mayor que, que es este Chevron derecho y luego podemos poner la distancia de movimiento.
‫Parece que lo he llamado distancia de movimiento, pero creo que debería ser la distancia de movimiento.
‫Así que accidentalmente tuve una D adicional allí.
‫Eliminemos eso del encabezado del archivo y verá que esta expresión aquí devuelve un valor booleano para que
‫podamos usarlo dentro de nuestra declaración if.
‫Entonces, lo que podemos hacer es decir si el espacio abre corchetes y luego voy a cortar esta expresión y pegarla
‫en esos corchetes.
‫Así que está bien si la distancia recorrida es mayor que la distancia recorrida, entonces esencialmente queremos
‫invertir la dirección.
‫Así que para eso estamos haciendo este comentario.
‫Queremos invertir la dirección del movimiento e invertir la dirección del movimiento.
‫Tenemos una velocidad de plataforma.
‫Así que fijemos la velocidad de la plataforma en el negativo de sí mismo, básicamente invirtiendo su dirección.
‫Entonces la velocidad de la plataforma es igual.
‫Velocidad de plataforma negativa.
‫Entonces eso básicamente va a voltear la flecha sobre la velocidad.
‫Voy a poner un punto y coma al final de esa línea y veamos si esta declaración realmente funciona
‫como pretendíamos.
‫Vayamos al editor y hagamos clic en compilar.
‫Y ahora que se completó con éxito, podemos seguir adelante y presionar reproducir y ver qué sucede.
‫Así que espero que avance y retroceda más o menos como lo está haciendo, y eso es bastante bueno.
‫Ahora, lo que realmente está pasando es que va un poco más allá de su punto de partida.
‫Ahora, la razón de eso.
‫Entonces, si echamos un vistazo, ese es el punto de partida.
‫Y si voy y presiono reproducir y miro hacia el lado desde el mismo ángulo donde está parado mi jugador,
‫puedes ver que va a la misma distancia desde el punto de inicio en cada dirección.
‫Y eso es porque cuando miramos lo que se calcula aquí, la distancia recorrida es desde una ubicación
‫de inicio que nunca cambia.
‫Nunca actualizamos esa ubicación de inicio.
‫Así que vamos en la dirección negativa.
‫Luego vamos a viajar más allá de él la misma cantidad que viajamos hacia el otro lado.
‫Así que no es así como quiero que funcione mi plataforma.
‫Así que voy a desafiarte a que actualices tu ubicación de inicio.
‫Vamos a estar haciendo eso dentro de la declaración.
‫Entonces, solo sucederá cuando lleguemos al final de nuestro viaje y lo configurará para que sea la
‫ubicación actual, de modo que básicamente restablezcamos nuestro punto de partida al otro lado y luego podamos viajar en
‫la dirección opuesta.
‫Así que pruebe los resultados y vea si funciona como espera.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a después de haber invertido la velocidad aquí, en realidad no importa si es antes o
‫después porque no tienen un impacto el uno en el otro.
‫Vamos a establecer la ubicación de inicio igual a la ubicación actual, lo que esencialmente significa que en el siguiente cuadro la distancia
‫recorrida será cero porque sabemos que la distancia entre la ubicación de inicio
‫y ella misma será cero.
‫Regresemos y realmente presionemos el botón de compilación.
‫Y cuando termine, presionemos reproducir y veamos qué sucede ahora.
‫Así que espero que esto vaya hacia adelante y hacia atrás.
‫Ahí tienes
‫Casi la misma cantidad de unidades que siempre regresan a su ubicación inicial, sin retroceder más,
‫lo cual es fantástico.
‫Justo lo que quería que sucediera.
‫Así que eso es todo por esta lección, hemos aprendido cómo usar nuestras declaraciones if y expresiones booleanas para hacer eso
‫y hemos permitido que eso envíe nuestra plataforma de un lado a otro.
‫Buena cosa.
‫Te veré en la próxima conferencia.