Bienvenido de nuevo, Mis desarrolladores de juegos favoritos.
En este video, nos vamos a convertir en invencibles.
Entonces ahora cuando nos disparan una vez, la segunda vez,
somos invencibles y te
das cuenta de que hicimos un poco de flash,
lo cual es muy cool.
Ahora también nos vamos a convertir en
invencibles cuando hagamos el torpedo.
Para que nadie nos haga daño mientras estamos haciendo nuestro torpedo.
Obviamente no llegamos ahí,
pero no nos preocupemos por eso.
Primero que nada tenemos que ir y
crear nuestra mecánica de invencibilidad.
Entonces, empecemos.
O K.
Así que ahora cada vez que nos disparan,
si estamos, por ejemplo,
atrapados entre los tres esqueletos aquí mismo,
podría ser un poco
injusto para el jugador que juega
nuestro juego que simplemente muere
inmediato y ni siquiera se da cuenta de lo que pasó.
Y otra cosa,
una cosa realmente bonita que me gustaría
agregar como mecánico de juegos a nuestro juego
es que cada vez que estamos corriendo,
tenemos a nuestro jugador apenas un poco
invencible para un par de
segundos, tal vez incluso milisegundos.
Entonces para eso, vamos a
implementar este mecánico de que
nuestro jugador sea invencible
por al menos un par de segundos.
Entonces Vamos a entrar en nuestro manejador de salud de jugadores.
Y aquí dentro voy a crear dos variables.
El primero va a ser
un campo serializado y va a ser un flotador,
y va a ser el tiempo de sensibilidad.
Entonces, ¿cuánto tiempo permanece invencible el jugador?
Se va a sumar como estándar de 1 segundo.
Y luego voy a crear
un bool privado y llamarlo el es invencible.
Entonces cuando el jugador es invencible,
hay un par de cosas que van a pasar
y un par de cosas que no sucederán.
Y una de las cosas que no sucederá es que
el jugador no recibirá daños.
Entonces aquí, vamos a
revisar antes de empezar a dañar al jugador.
Si el jugador es invencible,
entonces vamos a saber realmente
lo que quise hacer es arco.
Entonces aquí, déjame quitarle éste.
Y, y una invitación a esos.
Lo que quise decir si el jugador no es invencible,
así que no es invisible significa que vamos
añadir un signo de exclamación detrás de esto,
y esto cambiará todo el asunto.
Entonces si no es invencible,
es invencible es cierto,
que significa que toda la condición
es falsa por el signo de exclamación,
esto significa que no accedemos a esto.
Esto significa siempre que somos invencibles,
es invencible es cierto.
No salimos lastimados.
Tan excelente.
Sigamos adelante.
Lo siguiente que queremos hacer es
asegurarnos de que luego dejemos
de ser invencibles
después de cierto tiempo.
Entonces para eso vamos a tener que crear un recubrimiento.
Entonces te lo voy a emitir como un reto.
Así que da vuelta al jugador usando un recubrimiento.
Tendrás que crear una cosa central que dé vuelta
al jugador de su invencibilidad,
debe usar la variable de tiempo de invencibilidad
y necesitas llamar al recubrimiento
en el lugar apropiado.
Entonces con esa información del video ahora mismo,
e ir al reto.
De acuerdo, bienvenido de nuevo.
¿ Cómo te llevaste con eso?
Ya sabes, lo que me encanta de
los retos es que te hace rendir cuentas.
Entonces si a estas alturas aún no
sabías cómo funciona un tribunal en después de todos los retos,
tendrás que aprender en algún momento porque seguiré
pidiéndote que hagas
algo hasta que esté arraigado en ti.
Entonces tomémoslo un poco fácil y
sigamos adelante y creemos un enumerador de ojos aquí.
Entonces creo que ahora es bastante fácil.
Por lo que es jugador es invencible.
O volver a lo que deberíamos llamar a esta capa?
Sólo llamémoslo es en invencible.
Ellos, no son invencibles.
De acuerdo, llamémoslo así.
Y aquí vamos a ceder
retorno nuevo peso para segundo.
Es decir, para este punto,
debería ser como simplemente estornudar o respirar.
Por lo que rendimos retorno nueva espera
cuatro segundos, el tiempo de invencibilidad.
Y después de esa invencibilidad el tiempo es
invencible volverá a ser falso.
Y también quiero asegurarme de que en cuanto empecemos
el es invencible se ponga en falso.
Para que no seamos
invencibles en cuanto empecemos con eso hecho,
creo que eso es todo lo que tenemos que hacer.
Entonces voy a guardar esto.
Voy a volver a nuestro juego.
Y vamos a ejecutar el juego.
Y veamos qué pasa.
Entonces cuando yo, vale, así que primero,
necesitamos agregar tal vez un par de segundos más.
Entonces tiempo de condenación y sensibilidad,
hagámoslo dos, y volvamos a ejecutarlo.
Entonces este será el momento.
Entonces nos golpean una vez.
Ahí vamos. Ahora lo conseguimos dos veces, aún morimos.
¿ Por qué es eso?
Veamos cuál es el problema.
Hagamos esto público para que podamos ver
claramente si realmente estamos cambiando lo que está sucediendo.
Todo lo que no hemos empezado el frío aquí dentro.
Entonces voy a asegurarme de que lo hagamos.
Aquí, ¿Dónde deberíamos llamarlo 0?
Entonces también lo que quiero hacer es siempre que sí nos golpeen,
también necesitamos cambiar lo es invencible a verdadero.
Por lo que hay muchos pasos que me olvidé de hacer.
Y después de que lo tengamos,
voy a empezar la corutina.
Y la corutina será la capa, no invencible.
Entonces hay muchas cosas.
Entonces déjame decirte lo que olvidé hacer.
Y aquí, en cuanto nos golpeen,
queremos hacer realidad lo invencible.
Y una vez que seamos invencibles,
entonces vamos a iniciar la corutina.
Y como lo es invencible es cierto,
ya no nos dañan.
Por lo que esta línea fue crucial.
Y ni siquiera sé cómo
podría haber olvidado algo tan importante,
esta es toda la esencia de
hacer invencible a nuestro jugador.
Entonces espero que entiendas lo que está pasando.
Espero que no estés demasiado enojado por
los errores que a veces cometo.
Y vamos a seguir adelante y correr el juego.
Entonces ahí vamos, nos golpean una vez, lo conseguimos dos.
Ahí vas.
Se puede ver que la segunda cadera no nos mató.
¿ Por qué? Porque teníamos el tiempo de invencibilidad encendido.
Entonces podemos ver justo aquí estaba encendido.
Vamos a probar esto otra vez porque siento
que tal vez deberíamos haber tomado un golpe más.
Entonces allá vamos es invencible y morimos.
Sigo sintiendo que algo no está del
todo mal y tengo toda la razón. Por lo que 50.
Entonces, asegurémonos de que esté funcionando.
Pongámoslo a tal vez cinco segundos
y veamos si eso dura más.
Porque puedo ver aquí que esto no está
cambiando 1234, está bien,
así que sé que creo que todo está funcionando,
pero por alguna razón no estamos
viendo este cambio aquí mismo.
Pero no se preocupe por eso.
Sabemos que está funcionando porque cuando aumentamos
el tamaño del tiempo, somos invencibles.
Podemos pararnos en la cara de la especie un poco más.
Está bien, genial. Ahora, eso está todo bien y dandy.
Pero aquí está el problema.
No tenemos ni idea de que somos
invencibles por cierto tiempo.
Entonces lo que vamos a hacer es que vamos
a tratar de visualizar esto.
Entonces haz eso.
Lo que creo que voy a hacer es
que voy a acceder al cuerpo aquí mismo.
Se puede ver que tenemos los colores y cuando nos golpeen,
voy a hacer parpadear al jugador.
Entonces le haré parpadear una vez, dos, tres veces,
o mantener un parpadeo hasta que se acabe el tiempo que tenemos.
Entonces sigamos adelante y hagamos eso.
Entonces voy a entrar aquí y voy a
conseguir una referencia al sprite del jugador.
Campo tan serializado.
Y va a ser el renderizador sprite.
Y va a ser el jugador sprite.
Ahí vamos. Y aquí dentro vamos
a crear un numerador.
Y va a ser el destello.
Y aquí lo que vamos a hacer es que vamos a,
primer lugar a determinar cuántos
flashes queremos tener.
Y luego crearemos un bucle for.
Espéralo.
¿ Sabes de qué hablo?
Va a tener el int igual a 0,
mientras que yo es menos de cuántos flashes queremos?
Digamos cinco flashes.
Y yo plus, plus.
Está bien.
Entonces quédate conmigo.
Te voy a dejar bien.
Voy a primero añadir un poco
de espaciado aquí y luego voy
a acceder al jugador sprite color dot
va a ser igual a un nuevo color.
Abre los corchetes o como se les llame.
Y luego voy a escribir aquí,
vamos a mantener la a la misma.
Nos quedaremos con el,
déjame solo duplicar esta línea dos veces.
Nos quedaremos con la a.
Entonces tenemos el ordinal.
Empezamos por rojo,
rojo, verde y azul.
Y por último, tendremos
la última que no debe tomar una coma.
Se puede ver aquí mismo no tenemos coma y va a
ser la, la a.
Pero en nuestro caso, en primer lugar,
queremos reducir la a.
Así que pongámosla a tal vez 0.1.
Entonces después de esto, vamos a ceder retorno nuevo.
Y vamos a esperar cuatro segundos.
Y así de rápido vamos a estar parpadeando.
Entonces voy a ponerlo en tu 0.1.
Cuando no tenemos un 0 o sólo un punto,
eso significa que tenemos 0.1.
Es sólo una forma un poco más rápida de hacer las cosas.
Y luego vamos a volver y copiar
esta línea y ponerla aquí.
Y en lugar de 0.1,
íbamos a tener el uno.
Y permítanme simplemente agregar una pestaña
aquí para fines de implementación.
Entonces sólo entenderlo todo.
Y entonces vamos de nuevo a
ceder retorno de peso por 1. Segundo.
Guarda eso.
Y ahora tenemos que empezar la corutina en alguna parte.
Cuando nos golpeen justo
después de poner la invencibilidad a verdadera,
vamos a iniciar la co-rutina,
que va a ser V parpadeante con los paréntesis también,
estos se llaman paréntesis, acabo de recordar.
A lo mejor van a carpool y paréntesis y formas en que ahorramos
eso lo que está pasando aquí dentro.
Entonces, en primer lugar, tenemos el bucle.
Ya sabemos cómo funciona el bucle. Empezamos a las 0.
Lo hacemos cuatro veces,
cinco veces en realidad es 4,
0, 1, 2, 3, y 4.
Por lo que 5 veces, aumentamos en una
cada vez y vamos a recorrer.
Entonces, ¿qué estamos haciendo aquí?
Estamos cambiando el color.
Mantenemos todo lo rojo, verde,
y azul igual excepto el alfa.
Y aquí dentro estamos haciendo lo mismo.
Entonces el primero que estamos reduciendo a alfa a 0.1.
Y el segundo estamos haciendo el Alfa 1.
¿ Y qué estamos haciendo aquí?
Bueno, ya sabemos cómo rendimiento
retorno esperas cuatro segundos funciona.
En primer lugar, tenemos el alfa en 0.1.
Esperamos 0,1 segundos.
Después lo volvemos a uno.
Esperamos 0.1 segundos y luego
nuevamente iniciamos el bucle y seguimos haciendo esto.
Entonces nos vamos, vale,
y seguimos haciendo esto y esto va a
crear un efecto intermitente,
no créanme, eso es todo fuera.
Entonces voy a volver aquí.
Voy a correr el juego y vamos a ver qué pasa.
Entonces me voy a acercar al enemigo.
Él me dispara y no pasa nada porque obviamente,
cada vez que tenemos que cometer
el mismo error que necesitamos agregar el sprite jugador.
Después arrastramos el cuerpo,
guardamos todo eso.
Nosotros vamos a aplicar los cambios y vamos a correr.
Y ahora deberíamos ver que nosotros, Ahí vamos.
Se puede ver que empezamos a parpadear.
Cuando dejamos de parpadear,
eso significa que ya no somos invencibles.
Ahora lo único aquí, el único truco,
cosa complicado aquí es que queremos asegurarnos
de que el tiempo de invencibilidad y el rubor
coincidan para que no empecemos a
parpadear y luego por alguna razón nos
dejar de parpadear sin embargo seguimos
invencibles o al revés seguimos parpadeando,
pero ya no somos invencibles por lo que morimos.
No estamos seguros de lo que está pasando.
Por lo que habrá un poco de
un problema de tiempo que necesitarás
retocar y asegurarte de que funcione.
Pero con eso dicho,
te voy a emitir un reto extra.
¿ Qué tan guay es eso?
Estoy 100% seguro de que no lo viste
venir porque quiero hacer
invencible al jugador cuando hace
el torpedo o el guión o como lo llames.
Para que esa información, paren el video ahora mismo
y hagan que el jugador también
invencible cuando haga el torpedo.
Oh, bien, bienvenido de nuevo.
Entonces, ¿qué vamos a hacer aquí?
Obviamente, tenemos el destello aquí mismo,
pero queremos asegurarnos de que lo llamamos
desde otro método,
que es el controlador del jugador.
Cuando estamos, ¿Dónde está,
Dónde está cambiando de arma? El jugador apestoso.
Entonces ahí entramos aquí,
queremos asegurarnos de que llamemos a
esto cada vez que estemos punteando,
¿cómo vamos a hacer esto?
Bueno, es bastante fácil.
Tenemos que iniciar una co-rutina.
Entonces vamos a mirar atrás aquí.
¿ Tenemos una coroutina?
Vamos a seguir adelante y conseguir
el componente, la salud del jugador.
En tanto que manejador de capas.
Ahí vamos.
Y aquí dentro vamos a,
antes de conseguir el componente, iniciar una corutina.
Y creo que porque éste es ¿cuál es el nombre?
Y sólo comprueba No,
En realidad, lo siento por eso.
Dot start coroutine.
Y aquí vamos a acceder al flasher.
Podemos saber que necesitamos hacerlo público sobre enumerador.
Tan flasher, no me está permitiendo.
De acuerdo, entonces creo que tenemos que hacerlo así.
Entonces inicia coroutine.
Y ahí vamos.
Guarda eso.
Entonces como pueden ver,
ni siquiera yo estaba seguro de cómo va a funcionar esto,
pero aparentemente necesitamos iniciar la corutina.
Accedemos al componente,
obtenemos el manejador de salud del jugador y manejador de jugadores de la NBA.
Conseguimos el parpadeante.
Entonces guarde eso.
Vamos a probar esto.
De vuelta en nuestro juego.
Corremos el juego.
Y ahora cuando hacemos el guión, ahí vamos.
Se puede ver que estamos parpadeando.
¿ Qué tan genial es eso un dash phi?
Deberíamos ver que no entiendo,
vale, así que eso no funcionó.
No nos preocupemos por eso.
Va a ser difícil tal vez tiempo el tiempo
que seamos invisibles con el apuesto,
con tener a los enemigos tiradores.
No te preocupes por eso porque
en el próximo video vamos a
estar creando algunas trampas de picos.
Y esta es una gran manera de poner a prueba
nuestra invencibilidad cuando estamos corriendo.
Entonces si caminamos por los sprites morirán.
Si caminamos por los sprites Mientras apuesto,
no moriremos porque seremos invencibles.
Entonces eso se dice.
También hay una cosa más que a pesar de que estamos
parpadeando aquí en el controlador del jugador,
no somos invencibles.
Y hacer invencible al jugador fue el reto,
y acabo de notar que antes de apagar todo.
Entonces para evitar la confusión,
lo que voy a hacer es volver y el dónde estamos,
el manejador de salud del jugador.
Voy a crear un método que
no sea un vacío público.
Hacer capa en sensato lo que no era invisible,
bien, hacer su símbolo de inventar.
Y aquí dentro voy a encender en primer lugar
la invencibilidad.
Así es como e invencible será igual a verdadero.
Entonces vamos a
iniciar la corutina del flash uno.
Y por último, también vamos a iniciar el recubrimiento.
Por favor, déjame empezar a cortejar de
la marca a cómo se llamaba?
Jugador no invencible.
Entonces ahora tenemos un método que lo hace todo,
un método para gobernarlos a todos.
Por lo que podemos quitar este de aquí.
Podemos quitar el destello y lo verdadero.
Y podemos hacer una cosa y eso se llama
el jugador hacer invencible,
guardar eso, y luego terminar el controlador del jugador.
No necesitamos llamar manualmente al flasher.
Podemos simplemente decir Get Component,
Cape health handler, dot, make, player invencible.
Ahí vamos.
Entonces vamos a probar esto otra vez.
De vuelta en nuestro juego, corre el juego.
Deberíamos nosotros.
No podemos cerrar ni una sola vez.
Nos dispararon dos veces y morimos.
¿ Cuál es el problema?
¿ Lo hicimos sólo 1 segundo?
Hagámoslo a través de R3.
Tres segundos, corre el juego.
Otra vez.
Nos disparan una, dos, tres veces.
De acuerdo, así que esto está funcionando.
Y luego cuando hacemos el guión, ahí vamos.
Estamos corriendo.
De acuerdo, no lo probamos correctamente.
En el siguiente video, nos aseguraremos de eso.
Perdón por la duración del video.
De nuevo, esto es algo bueno.
Creo que aprendimos a
iniciar una corutina a partir de un guión diferente.
Y también aprendimos a crear
un método y compactar todo en un solo lugar.
Creo que es bueno,
un buen hábito para ellos.
Entonces muchas gracias por ver.
Espero que estés disfrutando,
espero que estés cometiendo tus cambios.
Y te veré en el próximo video donde
estaremos creando picos.
También tuvimos un reto extra que es muy bueno.