Bem-vindo de volta, Meus desenvolvedores de jogos favoritos.
Neste vídeo, vamos nos tornar invencíveis.
Então, agora, quando somos baleados uma vez, pela segunda vez,
somos invencíveis e você
percebe que fizemos um pequeno flash,
o que é muito legal.
Agora também vamos nos tornar
invencíveis quando fizermos o torpedo.
Então ninguém pode nos machucar enquanto estamos fazendo nosso torpedo.
Obviamente, não chegamos lá,
mas não vamos nos preocupar com isso.
Vamos antes de tudo criar
nossa mecânica de invencibilidade.
Então, vamos começar.
O k.
Então agora, sempre que somos baleados,
se estivermos, por exemplo,
presos entre os três esqueletos aqui,
pode ser apenas um pouco
injusto para o jogador jogando
nosso jogo que ele morre
imediatamente e nem percebe o que aconteceu.
E outra coisa,
uma coisa muito legal que eu gostaria
adicionar como mecânica de jogo ao nosso jogo
é que sempre que estamos arrojados,
temos nosso jogador apenas um pouco
invencível para alguns
segundos, talvez até milissegundos.
Então, para isso, vamos implementar
essa mecânica de fazer com
nosso jogador seja invencível
por pelo menos alguns segundos.
Então, vamos entrar em nosso manipulador de saúde do jogador.
E aqui vou criar duas variáveis.
O primeiro será
um campo serializado e vai ser um flutuador,
e será o tempo de sensibilidade.
Então, quanto tempo o jogador permanece invencível?
Ele será adicionado como um padrão de 1 segundo.
E então eu vou criar
um bool privado e chamá-lo de invencível.
Então, quando o jogador é invencível,
há algumas coisas que vão acontecer
e algumas coisas que não acontecerão.
E uma das coisas que não acontecerá é que
o jogador não sofrerá dano.
Então, aqui, vamos verificar
antes de começarmos a danificar o jogador.
Se o jogador for invencível,
então vamos realmente saber
o que eu queria fazer é curvar.
Então, aqui, deixe-me remover este.
E, e um convite para eles.
O que eu queria dizer se o jogador não for invencível,
então não é invisível significa que vamos
adicionar um ponto de exclamação por trás disso,
e isso mudará a coisa toda.
Então, se ele não é invencível,
é invencível é verdade,
que significa que toda a condição
é falsa por causa do ponto de exclamação,
isso significa que não acessamos isso.
Isso significa que sempre que somos invencíveis,
é invencível é verdade.
Não nos machucamos.
Tão excelente.
Vamos continuar.
A próxima coisa que queremos fazer é
ter certeza de que deixamos
de ser invencíveis
após um certo período de tempo.
Então, para isso, teremos que criar um revestimento.
Então, vou emitir isso para você como um desafio.
Então volte o jogador usando um revestimento.
Você precisará criar uma coisa central que volte
o jogador de sua invencibilidade,
deve usar a variável de tempo de invencibilidade
e você precisa chamar o revestimento
no local apropriado.
Então, com essa informação do vídeo agora,
e vá para o desafio.
Certo, bem-vindo de volta.
Como você se deu bem com isso?
Sabe, o que eu amo sobre
os desafios é que isso te mantém responsável.
Então, se neste momento você ainda não soubesse
como funciona um tribunal depois de todos os desafios,
você terá que aprender em algum momento porque continuarei
pedindo que você faça
algo até que ele esteja arraigado em você.
Então, vamos ter calma e
vamos seguir em frente e criar um enumerador de olhos aqui.
Então eu acredito que é muito fácil agora.
Então, o jogador é invencível.
Ou volte para o que devemos chamar essa camada?
Vamos apenas chamá-lo de invencível.
Eles, eles não são invencíveis.
Certo, vamos chamá-lo assim.
E aqui vamos produzir um
novo peso de retorno por segundo.
Quero dizer, a este ponto,
deveria ser como apenas espirrar ou respirar.
Portanto, rendemos retorno nova espera
quatro segundos, o tempo de invencibilidade.
E depois que o tempo de invencibilidade é
invencível voltará ao falso.
E também quero ter certeza de que assim que começarmos
o é invencível está definido como falso.
Para que não sejamos
invencíveis assim que começamos com isso feito,
acredito que é tudo o que precisamos fazer.
Então, vou salvar isso.
Vou voltar ao nosso jogo.
E vamos executar o jogo.
E vamos ver o que acontece.
Então, quando eu, ok, então primeiro,
precisamos adicionar talvez mais alguns segundos.
Então, tempo de desgraça e sensibilidade,
vamos fazer dois, e vamos executá-lo novamente.
Então esse será o momento.
Então, somos atingidos uma vez.
Lá vamos nós. Agora conseguimos duas vezes, ainda morremos.
Por que isso?
Vamos ver qual é o problema.
Vamos tornar isso público para que possamos ver
claramente se estamos realmente mudando o que está acontecendo.
Tudo o que não começamos o frio aqui.
Então, vou me certificar de que sim.
Aqui, Onde devemos chamá-lo de 0?
Então também o que eu quero fazer é sempre que somos atingidos,
também precisamos mudar o que é invencível para verdadeiro.
Então, há muitos passos que eu esqueci de fazer.
E depois de conseguirmos,
vou começar a co-rotina.
E a corrotina será a camada, não invencível.
Então, há muitas coisas.
Então deixe-me dizer o que eu esqueci de fazer.
E aqui, assim que formos atingidos,
queremos definir o invencível como verdadeiro.
E uma vez que formos invencíveis,
vamos começar a corrotina.
E porque o é invencível é verdade,
não ficamos mais danificados.
Então essa linha foi crucial.
E eu nem sei como eu
poderia ter esquecido algo tão importante,
essa é toda a essência de
tornar nosso jogador invencível.
Então, espero que você entenda o que está acontecendo.
Espero que você não esteja muito bravo
os erros que às vezes cometi.
E vamos seguir em frente e executar o jogo.
Então lá vamos nós, somos atingidos uma vez, recebemos duas vezes.
Lá vai você.
Você pode ver que o segundo quadril não nos matou.
Por quê? Porque tivemos o tempo de invencibilidade.
Então podemos ver aqui que estava ligado.
Vamos testar isso novamente porque eu
sinto que talvez devêssemos ter tomado mais um golpe.
Então lá vamos nós é invencível e morremos.
Ainda sinto que há algo não
errado e estou certo. Então 50.
Então, vamos nos certificar de que está funcionando.
Vamos defini-lo para talvez cinco segundos
e ver se isso dura mais tempo.
Porque posso ver aqui que isso não está
mudando 1234, ok,
então eu sei que acho que tudo está funcionando,
mas por algum motivo não estamos
vendo essa mudança aqui.
Mas não se preocupe com isso.
Sabemos que está funcionando porque quando aumentamos
o tamanho do tempo, somos invencíveis.
Podemos ficar no rosto do tipo um pouco mais.
Certo, ótimo. Agora, isso está tudo bem e elegante.
Mas aqui está o problema.
Não temos ideia de que somos
invencíveis por um certo período de tempo.
Então, o que vamos fazer é
tentar visualizar isso.
Então faça isso.
O que eu acho que vou fazer é
acessar o corpo aqui.
Você pode ver que temos as cores e quando formos atingidos,
vou fazer o jogador piscar.
Então eu vou fazê-lo piscar uma, duas, três vezes,
ou continuar piscando até que o tempo que temos acabe.
Então, vamos seguir em frente e fazer isso.
Então, vou entrar aqui e vou
obter uma referência ao sprite do jogador.
Campo tão serializado.
E vai ser o renderizador sprite.
E vai ser o sprite do jogador.
Lá vamos nós. E aqui vamos
criar um numerador.
E vai ser o pisca.
E aqui o que faremos é que vamos,
primeiro determinar quantos
flashes queremos ter.
E então criaremos um loop for.
Espere por isso.
Sabe do que estou falando?
Vai ter o int igual a 0,
enquanto eu é menor do que quantos flashes queremos?
Digamos que cinco flashes.
E eu mais, mais.
Certo.
Então fique comigo.
Vou deixá-lo corretamente.
Em primeiro lugar, vou adicionar um pouco
de espaçamento aqui e depois vou
acessar a cor do ponto sprite do jogador
será igual a uma nova cor.
Abra os colchetes ou o que eles são chamados.
E então eu vou escrever aqui,
vamos manter a mesma coisa.
Vamos manter o,
deixe-me duplicar esta linha duas vezes.
Vamos manter o a.
Então temos o ordinal.
Começamos por vermelho,
vermelho, verde e azul.
E, finalmente, teremos
o último que não deve levar uma vírgula.
Podemos ver aqui que não temos uma vírgula e vai
ser a, a.
Mas no nosso caso, em primeiro lugar,
queremos reduzir o a.
Então vamos defini-lo para talvez 0,1.
Depois disso, vamos dar retorno novo.
E vamos esperar quatro segundos.
E isso é o quão rápido vamos piscar.
Então, vou defini-lo para o seu 0.1.
Quando não temos um 0 ou apenas um ponto,
isso significa que temos 0,1.
É uma maneira um pouco mais rápida de fazer as coisas.
E então vamos voltar e copiar
esta linha e colocá-la aqui.
E em vez de 0,1,
nós íamos ter o único.
E deixe-me adicionar uma guia
aqui para fins de implementação.
Então, apenas entenda tudo.
E então vamos voltar a
produzir retorno de peso para 1. Segundo.
Salve isso.
E agora temos que começar a corrotina em algum lugar.
Quando formos atingidos logo
após definirmos a invencibilidade como verdadeira,
vamos começar a co-rotina,
que será V pisca com os parênteses também,
estes são chamados de parênteses, acabei de me lembrar.
Talvez eles vão carpool e parênteses e maneiras como salvamos
o que está acontecendo aqui.
Então, antes de tudo, temos o loop.
Já sabemos como o loop funciona. Começamos em 0.
Fazemos isso quatro vezes,
cinco vezes na verdade é 4,
0, 1, 2, 3 e 4.
Então, 5 vezes, aumentamos em um
cada vez e vamos percorrer.
Então, o que estamos fazendo aqui?
Estamos mudando a cor.
Mantemos tudo vermelho, verde
e azul iguais, exceto o alfa.
E aqui estamos fazendo o mesmo.
Então, o primeiro que estamos reduzindo para alfa para 0,1.
E o segundo, estamos fazendo o Alpha 1.
E o que estamos fazendo aqui?
Bem, já sabemos como o retorno de rendimento
que você espera quatro segundos funciona.
Primeiro de tudo, temos o alfa em 0,1.
Esperamos por 0,1 segundos.
Então, voltamos para um.
Esperamos 0,1 segundos e, novamente,
iniciamos o loop e continuamos fazendo isso.
Então vamos, ok,
e continuamos fazendo isso e isso criará
um efeito piscante,
não acredite em mim, isso é isso.
Então, vou voltar aqui.
Vou executar o jogo e vamos ver o que acontece.
Então, vou me aproximar do inimigo.
Ele atira em mim e nada acontece porque, obviamente,
toda vez que temos que cometer
o mesmo erro que precisamos adicionar o sprite do jogador.
Então arrastamos o corpo,
salvamos tudo isso.
Vamos aplicar as alterações e vamos executar.
E agora devemos ver que nós, lá vamos nós.
Você pode ver que começamos a piscar.
Quando paramos de piscar,
isso significa que não somos mais invencíveis.
Agora, a única coisa aqui, o único truque,
coisa complicada aqui é que queremos ter certeza
de que o tempo de invencibilidade e o rubor
coincidem para não começarmos a
piscar e, por algum motivo
pare de piscar, mas ainda somos
invencíveis ou, ao contrário, continuamos piscando,
mas não somos mais invencíveis, então morremos.
Não temos certeza do que está acontecendo.
Então, haverá um problema de
tempo que você precisará
ajustar e garantir que ele funcione.
Mas com isso dito,
vou lhe emitir um desafio extra.
Quão legal é isso?
Tenho 100% de certeza que você não viu
isso chegando porque eu quero tornar
o jogador invencível quando ele faz
o torpedo ou o traço ou o que quer que você chama.
Então essa informação, pause o vídeo agora mesmo
e torne o player também
invencível quando ele faz o torpedo.
Oh, ok, bem-vindo de volta.
Então, o que vamos fazer aqui?
Obviamente, temos o pisca aqui,
mas queremos ter certeza de que o chamamos
de outro método,
que é o controlador do jogador.
Quando estamos, Onde está,
Onde está a arma de troca? O jogador arrojado.
Então lá vamos aqui,
queremos ter certeza de que chamamos
isso sempre que estivermos arrojados,
como vamos fazer isso?
Bem, é muito fácil.
Precisamos iniciar uma co-rotina.
Então, vamos olhar para trás aqui.
Temos uma corrotina?
Vamos seguir em frente e obter
o componente, a saúde do jogador.
Enquanto ele manipulador de camadas.
Lá vamos nós.
E aqui vamos,
antes de obter o componente, iniciar uma corrotina.
E eu acho que porque este é qual é o nome?
E apenas verifique Não,
na verdade, desculpe por isso.
Corrotina de início de pontos.
E aqui vamos acessar o pisca.
Podemos saber que precisamos torná-lo público no enumerador.
Então pisca, não está me permitindo.
Ok, então eu acho que temos que fazer isso assim.
Então comece a corrotina.
E lá vamos nós.
Salve isso.
Então, como você pode ver,
mesmo eu não tinha certeza de como isso vai funcionar,
mas aparentemente precisamos iniciar a corrotina.
Acessamos o componente,
obtemos o manipulador de saúde do jogador e o manipulador de jogadores da NBA.
Nós pegamos o pisca.
Então, salve isso.
Vamos testar isso.
De volta ao nosso jogo.
Nós executamos o jogo.
E agora, quando fazemos o traço, lá vamos nós.
Você pode ver que estamos piscando.
Quão legal é um phi dash?
Devemos ver que eu não entendo,
ok, então isso não funcionou.
Não vamos nos preocupar com isso.
Vai ser difícil, talvez, cronometrar o tempo
em que somos invisíveis com o arrojado,
com os atiradores inimigos.
Não se preocupe com isso porque
no próximo vídeo vamos
criar algumas armadilhas de picos.
E essa é uma ótima maneira de testar
nossa invencibilidade quando estamos arrojados.
Então, se passarmos pelos sprites morrerão.
Se andarmos pelos sprites Enquanto arrojados,
não morreremos porque seremos invencíveis.
Então, isso é dito.
Há também mais uma coisa que, embora estejamos
piscando aqui no controlador do jogador,
não somos invencíveis.
E tornar o jogador invencível era o desafio,
e acabei de perceber isso antes de desligarmos tudo.
Então, para evitar a confusão,
o que vou fazer é voltar e onde estamos,
o manipulador de saúde do jogador.
Vou criar um método que
não seja um vazio público.
Faça camada sensível o que não era invisível, ok,
faça seu símbolo de inventar.
E aqui vou, antes de
mais nada, ativar a invencibilidade.
Assim é como e invencível será igual a verdadeiro.
Então vamos iniciar a
corrotina do flash.
E, finalmente, também vamos iniciar o revestimento.
Por favor, deixe-me começar a cortejar
o make para o que foi chamado?
Jogador não invencível.
Então agora temos um método que faz tudo,
um método para governar todos eles.
Então, podemos remover este daqui.
Podemos remover o pisca e o verdadeiro.
E podemos fazer uma coisa e isso é chamado
make player invencível,
salvar isso e depois terminar o controlador do jogador.
Não precisamos chamar o pisca manualmente.
Podemos apenas dizer Get Component,
Layer health handler, dot, make, player invencível.
Lá vamos nós.
Então, vamos testar isso novamente.
De volta ao nosso jogo, execute o jogo.
Devemos nós.
Não podemos fechar uma vez.
Fomos baleados duas vezes e morremos.
Qual é o problema?
Fizemos isso apenas 1 segundo?
Vamos passar pelo R3.
Três segundos, execute o jogo.
Mais uma vez.
Nós somos baleados uma, duas, três vezes.
Certo, então isso está funcionando.
E então, quando fazemos o traço, lá vamos nós.
Estamos arrojados.
Ok, não testamos corretamente.
No próximo vídeo, vamos nos certificar disso.
Sinto muito pela duração do vídeo.
Mais uma vez, isso é algo bom.
Acredito que aprendemos a
iniciar uma corrotina a partir de um roteiro diferente.
E também aprendemos a criar
um método e compactar tudo em um único lugar.
Acho que é bom,
um bom hábito para eles.
Então, muito obrigado por assistir.
Espero que você esteja gostando,
espero que esteja cometendo suas mudanças.
E verei você no próximo vídeo em que
estaremos criando picos.
Também tivemos um desafio extra, o que é muito bom.