‫Hola y bienvenido.
‫En esta lección, vamos a restringir la cantidad de munición que tenemos para que una vez
‫que la hayamos usado, ya no podamos generar proyectiles.
‫Me he quedado sin proyectiles e incluso me sale un mensaje diciendo que me quedé sin munición.
‫No puedo engendrar más.
‫Así que vamos a sumergirnos y ver cómo hacemos esto.
‫Entonces, idealmente, lo que queremos que suceda es que cuando la munición se reduce a cero, ya no podemos generar
‫nuevos proyectiles.
‫Pero, ¿cómo controlamos el flujo de nuestro código a través de valores en nuestras variables?
‫Bueno, la solución a este enigma es algo llamado nodo de rama.
‫Entonces, ramas, letras, verifique si algo es cierto o no, y luego haga algo en función del resultado.
‫Por lo tanto, es posible que tenga un nodo de rama similar a este que dice Si tengo hambre, entonces la condición es
‫que tengo hambre, luego coma comida chatarra mientras la esposa no está mirando.
‫Y si eso no es cierto, entonces sigue jugando videojuegos.
‫Entonces, estos nodos de rama nos permiten hacer una cosa si una condición es verdadera y otra cosa si es
‫falsa.
‫Cualquiera de estas opciones en realidad no podría hacer nada.
‫Entonces, solo podría conectar el nodo falso, o solo podría conectar el nodo verdadero.
‫Cualquiera de estos va a funcionar.
‫Entonces lo recordarás.
‫O tal vez recuerdes que el color rojo estaba asociado con variables de tipo booleano en irreal.
‫Así que recordemos qué es un bool.
‫Un bool es la abreviatura de booleano y hay tipos que pueden almacenar uno de dos valores, ya sea verdadero o falso,
‫sí o no.
‫A menudo se usan con sentencias if o ramas.
‫Así que en el futuro vamos a estar en C++, vamos a estar llamando a ramas si declaraciones.
‫¿Pero es eso lo mismo?
‫Es el mismo concepto.
‫Y pueden controlar si algo sucede o no y ciertos nodos pueden devolver valores booleanos.
‫Entonces, ¿qué tipo de nodos podrían devolver valores booleanos?
‫¿Qué tipo de respuesta queremos?
‫Bueno, ¿cuándo es que queremos permitir que suceda el actor de generación?
‫¿Cuándo queremos que se cree un nuevo proyectil?
‫Solo queremos que se cree un nuevo proyectil si la cantidad de munición que tenemos es mayor que cero.
‫Entonces, afortunadamente, si hace clic derecho en su gráfico de eventos y busca mayor, hay un nodo para
‫eso.
‫Estos tipos de operadores o nodos se llaman comparación porque toman dos valores y crean una comparación entre
‫ellos y nos permiten tener una respuesta booleana.
‫Así que mayor es un ejemplo, menos es otro ejemplo.
‫También puede ver esto menos igual, lo que significa que es menor o igual.
‫También hay igual que es no es uno también igual o no igual.
‫Si dos valores son iguales, devuelve verdadero.
‫De lo contrario, devuelve falso.
‫Así que actualicemos un poco nuestro glosario.
‫Hemos averiguado que una rama es hacer o no hacer algo basado en un toro.
‫Descubrimos que los toros o booleanos son un tipo de datos de sí o no, y que la comparación es
‫cosas como menor que mayor que igual, etc. que crucialmente devuelven un valor booleano.
‫Entonces, intentemos usar una de estas comparaciones.
‫Voy a hacer clic con el botón derecho y agregar la mayor comparación aquí.
‫Luego voy a controlar, hacer clic en la variable de munición y arrastrarla al primer nodo de nuestro nodo de
‫comparación.
‫Y luego puede ver que el valor predeterminado aquí es en realidad mayor que cero.
‫Así que eso es exactamente lo que queremos.
‫Tenemos un nodo que dice ¿Es la munición mayor que cero y el valor de retorno es un booleano que dice sí si es
‫así y no si no lo es?
‫Entonces, lo que queremos hacer es tomar este valor de retorno booleano, arrastrarlo y buscar la rama.
‫Luego, podemos agregar un nodo de rama y automáticamente conecta la condición de entrada con el booleano que
‫estábamos arrastrando.
‫Ahora voy a arrastrar hacia atrás mi evento de barra espaciadora y arrastrar su pin de ejecución de nodo presionado a la entrada de
‫la rama.
‫Entonces eso va a ejecutar nuestra rama.
‫Entonces queremos que la rama, si es verdad, siga adelante y genere el proyectil y, de lo contrario, no
‫hará nada.
‫Así que probemos esto.
‫Si presionamos reproducir y luego generamos muchos proyectiles, hacemos que nuestro valor de proyectil baje a cero.
‫Puedes ver que ahora, no importa cuánto presione la barra espaciadora, no recibo más proyectiles.
‫Así que me gustaría desafiarte a que imprimas sin munición.
‫Entonces use la rama falsa para que agreguemos un nodo de impresión allí.
‫Y básicamente, cuando nos quedemos sin munición, me gustaría que imprimiera sin munición.
‫Así que prueba tu código y verifica que eso esté sucediendo.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que tenemos esta segunda rama de nuestro nodo de rama.
‫Simplemente arrastremos esto hacia atrás para que nuestras líneas no se crucen con estos pines de ejecución.
‫Y la rama falsa debería llegar hasta aquí donde va a hacer una cadena de impresión.
‫Y la cadena que quiero que imprima simplemente se quedará sin munición.
‫Ahora, si continuamos y jugamos y disparamos las 20 rondas de munición Cannonball, puedes ver que cada vez que presiono la barra
‫espaciadora, solo imprime el mensaje de que me quedé sin munición, lo que le da al jugador la indicación
‫de por qué. no aparecen más bolas en la escena.
‫Eso es todo por esta conferencia.
‫Te veré en la próxima.