‫Olá e bem-vindo.
‫Nesta palestra, apresentaremos este pedaço de código aqui, o intervalo de atores T,
‫e veremos como ele nos permite iterar sobre todos os atores em um determinado nível.
‫Vamos mergulhar e ver como funciona.
‫Então, no momento, o peão morto do modo de jogo KML que estamos chamando de jogo terminou no controlador do jogador, mas, na
‫verdade, o jogo terminou é uma função em todos os controladores, seja um I ou controladores de jogador.
‫E provavelmente deveríamos notificar os controladores aéreos também que o jogo terminou e esse certamente será o caso ou
‫tornará mais fácil fazer uma condição de vitória também porque não teremos necessariamente
‫o jogador -- vindo aqui.
‫Então, como vamos em frente e fazemos isso?
‫Bom, vou criar uma nova função no modo de matar todos eles, uma função privada
‫chamada End Game, que será responsável por esse ato.
‫Então, acabe o jogo e vai precisar de algumas informações.
‫Vai precisar saber quem ganhou.
‫Foi o jogador?
‫Tem sido o A. EU.?
‫Então vou criar um pool aqui chamado B é o vencedor do jogador.
‫E isso vai ser o que nos diz se devemos ou não dizer ao cara que ele venceu ou dizer ao jogador
‫que ele venceu.
‫Porque lembre-se aqui nosso jogo acabou.
‫Leva Boolean dizendo ao controlador se ele é ou não um dos vencedores.
‫Então, o que vamos ter que fazer é descobrir, antes de tudo, vamos em frente e criar a implementação.
‫Então, vou fazer meu controle de mudança P e depois criar a implementação.
‫E então teremos que descobrir como podemos encontrar todos os controladores em nossa cena para
‫que possamos dizer que o jogo terminou nesses controladores.
‫Agora, vamos fazer isso usando uma chamada de ajuda de mecanismo.
‫Então esqueça de incluir o hash, vamos usar o engine utils dot h antes de tudo que vai trazer para
‫o escopo o helper que eu quero e o helper é chamado T actor range e T actor range é uma coisa de
‫modelo.
‫Então podemos fazer os colchetes aqui.
‫Podemos então colocar um controlador e depois os parênteses e obter o mundo.
‫Agora o que isso vai fazer?
‫Ele vai retornar como um objeto range, que é basicamente como uma lista que passa por todos
‫os controladores.
‫É por isso que temos esse parâmetro do controlador lá no mundo a. k. a o nível, e podemos usar isso
‫em um loop completo.
‫Então deixe-me começar a envolver isso em um loop para que possamos fazer um for sobre o controlador A.
‫Então essa coisa que é a variável sobre a qual vamos organizar será um ponteiro de controlador,
‫que vou chamar de controlador.
‫E então usamos os dois pontos para o que vamos percorrer.
‫Vai ser essa faixa T ativa e que podemos colocar nossas roupas entre parênteses e chaves.
‫Então, o que isso está dizendo?
‫Está dizendo que vamos fazer um loop completo em todos os controladores do mundo e será
‫nessa variável chamada controlador.
‫E agora há algumas coisas que você pode precisar saber.
‫Então, uma coisa é que podemos consultar um controlador para saber se é ou não o controlador do jogador sem
‫ter que lançar.
‫Na verdade, podemos apenas fazer a seta do controlador.
‫E então acho que vou precisar incluir meu controlador aqui.
‫Então, um hash inclui no topo, vamos fazer uma estrutura de jogo para o controlador de barra H e agora tudo
‫para concluir provavelmente funcionará.
‫Sim, tem.
‫Então, o que podemos fazer é, obviamente, podemos chamar de jogo terminou.
‫Esse é o meu primeiro autocomplete aqui.
‫Mas também podemos dizer que é o controlador do jogador.
‫Basicamente, ele vai dizer que é essa coisa no mundo para jogar um controlador?
‫E isso nos permitirá decidir se devemos ou não passar em verdadeiro ou falso para o jogo terminou.
‫Então, meu desafio para você é preencher este loop chamando o jogo terminou com o parâmetro
‫booleano correto.
‫Então, vamos fazer isso para que basicamente seja verdade se o controlador com o qual estamos falando com o
‫controlador atualmente no loop for for um controlador de player e seu booleano que passamos disser que o controlador
‫de player é o vencedor também deve ser verdadeiro se não for um controlador de jogo e não o jogador, o jogador
‫é o vencedor basicamente dizendo se este é um aliado e o cara é o vencedor false se o controlador do
‫jogador, mas o jogador não for o vencedor e false se não for o controlador do jogador, mas o jogador for
‫o vencedor.
‫Você meio que vê onde isso está indo, espero.
‫Então, pause o vídeo e experimente implementá-lo assim, você pode usar as instruções if.
‫Você pode usar alguma outra lógica para calcular esse vídeo de pausa booleana e tentar.
‫OK.
‫Bem vindo de volta.
‫Então você pode fazer isso de várias maneiras.
‫Uma maneira pode ser dizer se a abelha é um jogador, controlar um vencedor e então vamos colocar algo na
‫instrução if.
‫Podemos fazer um pull up aqui para decidir que basicamente B é o controlador do jogador.
‫O que vamos salvar do fato de fazermos um controlador.
‫Arrow o está jogando o controle assim.
‫E então podemos dizer, ok, bem, queremos chamar controller.
‫O jogo de flechas terminou.
‫Vamos passar os pontos nulos por enquanto.
‫E então vamos dizer, bem, se é um jogador que é o vencedor e nós somos um controlador de jogador,
‫então sim, basicamente vá com esse valor.
‫Então jogue um controlador.
‫Caso contrário, se não for o controlador do player, ele terá perdido.
‫E podemos apenas negar isso para que possamos dizer.
‫Caso contrário, vamos chamar o jogo de controle terminou com não é o controle do jogador, basicamente porque estamos dizendo
‫que o jogador não é o vencedor, o ar é o vencedor nesta afirmação.
‫E então o que queremos fazer é dizer que depende se eles veem o oposto de se o jogador venceu, o
‫que quer dizer que o ar venceu.
‫Então essa é uma maneira de fazer isso com certeza.
‫Mas há outra maneira mais simples, que é simplesmente dizer, somos os vencedores?
‫Então seja vencedor.
‫E isso pode ser simplesmente dizer que se você é o controlador do jogador é igual a B é o vencedor do jogador.
‫Agora, vamos pensar um pouco mais sobre isso.
‫E eu vou completar isso completamente e então falaremos sobre isso.
‫Então, vamos dizer que o jogo do chapéu do controlador terminou será o ponteiro nulo com o B é o vencedor passado
‫aqui.
‫Agora, por que essa afirmação funciona?
‫Bem, vamos pensar nos casos.
‫Direita.
‫Então temos um controlador de jogador aqui e o jogador é o vencedor?
‫Sim, nós somos o vencedor.
‫E são iguais.
‫Verdadeiro e verdadeiro.
‫Que tal se este não for o controlador do jogador e o jogador não for o vencedor?
‫Bem, então isso é falso.
‫E isso aqui também é falso.
‫Para que os dois sejam iguais e o resultado seja um vencedor.
‫Isso é verdade?
‫Sim.
‫Porque se somos o eu e o eu como vencedores, devemos ser os vencedores.
‫Caso contrário, se estes dois não forem iguais, i. e. que temos um controle aéreo, mas o
‫jogador é o vencedor, ou temos o controle do jogador e o ar é o vencedor, então teremos um verdadeiro e falso
‫ou um falso e verdadeiro.
‫Esses dois não serão iguais e o booleano será avaliado como falso.
‫Então você pode ver que em cada um dos casos e eu passei por todos os casos lá, isso acaba com a
‫resposta certa.
‫Então sabemos que isso é o certo.
‫E essa é a grande coisa sobre booleanos é que normalmente você pode avaliar todos os casos porque você
‫pode dizer, ok, bem, quais são os casos?
‫Vai ser verdade e verdade.
‫Vai ser verdadeiro e falso.
‫Vai ser falso e verdadeiro.
‫Vai ser falso e falso.
‫Você pode avaliar todos esses casos.
‫Se todos esses casos estiverem corretos, você saberá que tem uma declaração booleana correta.
‫Frio.
‫Então é assim que vamos calcular o B quando finalmente precisamos chamar nosso modo de jogo final.
‫No momento estamos fazendo uma chamada direta para o controle do jogo terminou e o que eu realmente
‫quero fazer aqui é ir em frente e chamar o fim do jogo e queremos passar em falso porque esta é uma
‫situação em que o jogador realmente perdeu e é basicamente isso que queremos alcançar.
‫Agora, mais uma coisa a notar aqui é que esses pontos nulos que
‫estamos passando nos levarão a problemas no futuro, porque se o jogador realmente ganhou, isso tentará tirar o foco
‫do nosso jogador piscina.
‫E então o que queremos passar aqui é simplesmente que o foco deve estar no controlador dot get --.
‫E isso está basicamente dizendo que você deve colocar o foco do seu próprio controlador de jogador, seja basicamente para onde sua
‫câmera deve estar apontando?
‫Ele ainda deve estar apontando para o seu peão.
‫Por que é importante que façamos isso?
‫E por que existe essa opção aqui em primeiro lugar?
‫Bem, em muitos jogos, muitas vezes ou em muitos jogos de estilo de jogo, você pode ter que se
‫o jogo terminou, você quer ir e seguir o peão.
‫Esse foi o vencedor.
‫Então imagine como um cenário de Fortnite, muitas vezes você vai e segue a pessoa que o matou.
‫Este é o mecanismo para fazer isso.
‫Você basicamente passa o peão da pessoa que matou.
‫É isso que estamos fazendo no nosso jogo.
‫Vamos continuar olhando para a Apple e se ganhamos ou morremos.
‫Então, isso é muito bonito para a palestra.
‫Vamos apenas compilar e ver se está funcionando.
‫Vamos mergulhar no Unreal e apertar o play.
‫Vamos nos matar.
‫Ai está.
‫Está tudo funcionando como antes.
‫Ainda estamos recebendo essa chamada para o controlador do player e depois reiniciamos.
‫Coisas boas.
‫Então, nesta palestra, apenas para recapitular, o que vimos?
‫Bem, vimos como podemos iterar sobre os atores no nível para fazer algo como chamar uma função
‫em cada um desses atores.
‫Na próxima aula, usaremos o intervalo do ator T novamente, desta vez para calcular se o jogador tem
‫um.
‫Veja isso.