‫Hola y bienvenido.
‫En esta lección, vamos a aprender sobre los operadores booleanos para que podamos
‫hacer declaraciones complicadas que requieren múltiples booleanos para ser verdaderas, como que una gárgola solo se acepte
‫si es la etiqueta correcta y además no se agarra.
‫Entonces, cuando suelto la gárgola, puedes ver que la pared solo responde en ese punto.
‫Vamos a sumergirnos y ver cómo funciona esto.
‫Entonces, idealmente, ahora nos gustaría que nuestro componente desencadenante ignore o no tome un actor aceptable que se está
‫capturando actualmente.
‫Entonces, para cambiar esto, voy a ir a nuestra implementación de actor aceptable en el componente de activación
‫CBP.
‫Y pueden ver que si State estuviera diciendo actualmente, tomemos un actor, si tiene la etiqueta aceptable
‫y eso es lo único que estamos haciendo.
‫Pero lo que quiero hacer es condicionar esto a dos cosas.
‫¿Cómo combinamos dos valores booleanos?
‫Bueno, hay un par de opciones.
‫Tenemos algunos operadores para esto.
‫Uno de ellos es el operador ampersand ampersand, que leemos como.
‫Y esto básicamente significa que será una combinación de dos booleanos.
‫Entonces eso solo es cierto si ambos son ciertos.
‫Entonces, si tuviéramos verdadero y verdadero, entonces eso será igual a verdadero.
‫Mientras que si cualquiera de estos es falso, entonces si el de la
‫derecha es falso, entonces todo será falso, etc. Hay otra opción aquí, que es usar este operador
‫de doble barra así y este se lee como o.
‫Y básicamente esto significa que si alguno de estos dos es verdadero, entonces el resultado será verdadero.
‫Y además, si ambos son verdaderos, el resultado será verdadero.
‫Pero si ambos son falsos, entonces el resultado será falso.
‫Estas son algunas de las expresiones comunes que usamos.
‫Otra cosa que usamos es el signo de exclamación, y el signo de exclamación básicamente invierte cualquier valor booleano que
‫tengamos y lo leemos como no.
‫Entonces puedes tener falso, pero debido a que puse un nudo delante, todo este valor, esta expresión se
‫vuelve verdadera.
‫Y si tuviera que ordenarlo con falso, entonces bueno, porque uno de ellos al menos es verdadero, entonces el
‫resultado va a ser verdadero.
‫Entonces, lo que queremos hacer aquí es esencialmente decir que si tiene una etiqueta de actor, esa es la
‫etiqueta de acto aceptable, pero no la tiene.
‫Entonces, en este caso y no tiene la etiqueta de actor agarrada, entonces es aceptable.
‫Tantos desafíos para ti.
‫¿Cómo usarías esos tres operadores que acabo de explicar?
‫No tiene que usarlos todos, pero ¿cuáles usaría y cómo escribiría esta declaración
‫if?
‫Bueno.
‫Así que voy a poner esto en variables booleanas para que quede muy claro.
‫Así que tengo bool que tiene una etiqueta aceptable va a ser igual a actor que tiene una etiqueta aceptable.
‫Está bien así y punto y coma al final de la línea.
‫Ahora, otro bool va a ser si se agarra y podemos obtener esto yendo actor flecha actor tiene
‫etiqueta y este caso simplemente se agarra así.
‫Entonces, podemos decir que, ya sea que se tome o no sobre esta base, entonces, si
‫lo que queremos decir tiene una etiqueta aceptable, entonces es ampersand.
‫Ampersand no es un signo de exclamación se agarra así.
‫Eso se lee bastante bien si lee el ampersand y el signo de exclamación como y y no,
‫así que si aceptable tiene una etiqueta aceptable y no se toma, entonces devolvemos este actor.
‫Vamos a compilarlo y ver si funciona.
‫Así que sigamos adelante y presionemos play bien, tomemos una gárgola y corramos hacia el área de activación.
‫Y verás, estoy poniendo la gárgola, pero no pasa nada porque todavía no la he soltado.
‫¿Y qué si trato de derribar su placaje?
‫Aquí van.
‫Tan pronto como lo suelto, lo activa, agarra la gárgola lejos de mí y desaparece en el
‫suelo.
‫Ahora, hay un par de lugares en agarrar un CP donde tenemos declaraciones if en las que podríamos tener
‫una si tuviéramos que usar los operadores end or y not.
‫Entonces, uno de los trucos aquí es que cuando estás haciendo algo como esto, donde estamos comprobando
‫si algo no es un puntero nulo, la otra opción es que simplemente puedes eliminar este puntero que no es igual a nulo.
‫Y si simplemente dices si y luego pones algún tipo de puntero como el booleano, eso comprueba automáticamente que
‫no es un puntero nulo.
‫Así que aquí está diciendo que si el identificador de física está disponible aquí, está diciendo que si el componente de captura está
‫disponible, entonces podemos seguir adelante y usarlo.
‫Así que vamos a desafiarte a combinar tus sentencias if.
‫Así que vas a unirlos en componentes tecnológicos.
‫Piense si necesita usar el ampersand, el ampersand, el y el OR o si necesita usar
‫una negación o un nudo o un signo de exclamación y luego únalos en la liberación también y pruebe su
‫funcionalidad y vea si todavía obras.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a hacer uso de esto porque básicamente lo que queremos hacer y liberar es
‫que estamos diciendo que si tenemos un identificador de física válido y ese identificador de física tiene un componente agarrado, entonces queremos
‫hacer el cuerpo. de esta sentencia if.
‫Así que es bastante simple escribirlo así.
‫Podemos decir que si el controlador de física y el controlador de física se agarran del componente, entonces podemos hacer lo siguiente.
‫Eso nos permite eliminar esta declaración if de devolución anticipada y acortar un poco el código.
‫Ahora, los ojos de águila entre ustedes pueden preocuparse de que, oye, estamos haciendo referencia a este controlador de
‫física dentro de la declaración if para evaluar si esta declaración final debería funcionar.
‫Ahora hay una característica de y que evaluará primero la cosa de la izquierda.
‫Y si eso es falso, entonces ni siquiera evalúa lo de la derecha.
‫No es necesario.
‫Ya sabe que el resultado va a ser falso.
‫No necesita evaluar nada más.
‫Eso significa que es seguro hacer algo como esto donde el resultado a la derecha de una calculadora solo es
‫seguro si el resultado a la izquierda es verdadero.
‫Y esta es una propiedad muy útil.
‫Y ves que esto se usa mucho cuando usas punteros, primero verificarás el puntero y luego
‫tendrás un ampersand.
‫Ampersand, y luego usará el puntero en el lado derecho.
‫Pero por favor, por favor, no se sienta tentado a intercambiar estos dos en orden.
‫No funcionará al revés y obtendrá bloqueos.
‫Así que vayamos a nuestros componentes de tick donde esencialmente estamos haciendo exactamente lo mismo.
‫Queríamos comprobar que tenemos componentes agarrados.
‫Entonces, lo que podemos hacer aquí arriba es manejar la física y manejar la física.
‫Flecha agarró componente.
‫No necesitamos ese puntero no igual a nulo para mantenerlo limpio y luego podemos continuar y eliminar la declaración
‫if con el retorno y simplemente mantener las líneas de código hacia abajo, mantener la legibilidad un poco más
‫alta.
‫Buena cosa.
‫Así que en esta lección hemos visto cómo usar los operadores final o no en C++.
‫Te veré en la próxima conferencia.