‫Olá e bem-vindo.
‫Nesta palestra, vamos calcular a distância que nossa plataforma se moveu de seu
‫local inicial e exibi-la no editor para verificarmos e depurarmos.
‫Vamos mergulhar e ver como isso é feito.
‫Então, atualmente vimos que podemos implementar a primeira parte do pseudocódigo.
‫Nós escrevemos a plataforma MOVE para frente agora funciona.
‫Portanto, é a plataforma de envio de volta que ainda não abordamos.
‫E você pode ver o primeiro comentário lá é verificar o quão longe nós avançamos.
‫Então, como vamos verificar o quanto avançamos desde o início do jogo?
‫Bem, há dois componentes para isso.
‫Primeiro de tudo, precisamos descobrir a diferença entre dois vetores e a distância entre os
‫dois.
‫E a outra coisa que precisamos descobrir é como acompanhar de onde começamos.
‫Bem, a primeira parte é relativamente simples.
‫Felizmente, tudo o que temos a fazer é ir para nossa plataforma móvel Dot H e queremos criar uma nova
‫variável aqui, mas não uma que seja exposta a blueprints.
‫Pela primeira vez, esta é apenas uma variável apenas para C++, então não precisamos colocar uma nova propriedade sobre ela.
‫E será um vetor F chamado posição inicial ou localização para usar a mesma terminologia usada no
‫Unreal.
‫E não vamos definir isso com nenhum valor de cara porque não faria nenhum sentido.
‫O local de início.
‫Ainda não sabemos, mas saberemos no Begin Play.
‫Então é isso que vamos fazer.
‫Vamos passar para o C++ Olympic In-Play após a super aposta in-play.
‫Vamos definir nosso local de início para que possamos dizer o local de início.
‫Lembro que não colocamos o vetor aqui na frente disso porque estamos tentando nos referir a uma variável
‫de classe em vez de criar uma variável local.
‫Então, vamos definir este local inicial igual ao local GET Act porque no início da peça o
‫ator está no início.
‫Então nós definimos o local inicial e isso agora significa que temos uma variável que dura por toda a
‫instância desta classe, então podemos usá-la e pegar também.
‫E temos uma variável que podemos tentar encontrar a distância entre elas.
‫Podemos dizer: Ei, até que ponto a localização atual se desviou daquela localização inicial?
‫Bem, para poder fazer isso, preciso adicionar um pouco mais de sintaxe C++ ao nosso glossário.
‫Primeiro, ele será chamado de Scope Resolution Operator, que é um pouco confuso, mas na verdade
‫é esse operador de dois pontos que já vimos em um arquivo C++ antes.
‫E essencialmente tudo o que ele faz é permitir que você olhe dentro de uma classe da mesma forma que o operador DOT, permite
‫que você olhe dentro de uma instância de uma classe.
‫Então, vamos dar uma olhada nisso com um pouco mais de detalhes.
‫Sabemos que a função tick pertence à classe de plataforma móvel, mas não pertence a uma instância
‫específica dessa classe.
‫Todas as instâncias de plataforma móvel compartilham a mesma implementação de tick, que é o que significa ser uma
‫classe.
‫Portanto, o operador de resolução do escopo aqui entre a plataforma móvel e o Tick está nos dizendo que esse é
‫o tick que pertence à classe da plataforma móvel.
‫Da mesma forma que anteriormente estávamos usando o operador ponto para obter o x que pertence à localização
‫atual.
‫A localização atual era uma instância específica de um vetor F, mas podemos usar isso para obter funções
‫que pertencem à classe vetorial e não são executadas em uma instância específica dessa classe.
‫Então, um exemplo é obter a distância entre dois vetores.
‫A maneira como fazemos isso no Unreal é usar uma função que está na classe vetorial.
‫Então, faríamos o vetor F, depois dois pontos e dois pontos para olhar dentro dessa classe em quais funções ela tem disponível
‫para nós e podemos ver.
‫E agora chamo sua atenção para o preenchimento automático que está aparecendo neste momento.
‫Eu não mencionei isso no passado, mas quando estamos fazendo essas operações, na verdade estamos
‫tentando ser inteligentes e nos dizer quais funções estão disponíveis dentro de toda essa classe de vetor f.
‫E você pode ver que há alguns deles.
‫O que estamos procurando é chamado Dist Short para distância.
‫Agora você também notará que existe uma na verdade chamada de distância e que na verdade é sinônimo.
‫Poderíamos usar qualquer um deles, mas vou usar o mais curto para manter o código
‫mais conciso e podemos abrir os parênteses.
‫E, novamente, o preenchimento automático vem em nosso auxílio, pois está nos dizendo o que leva como argumentos.
‫Podemos ver que o primeiro argumento é um vetor três D e o segundo é um efeito para 3D também.
‫Então eu sou o fato de que é chamado de Fator 3D aqui é um pouco estranho, mas é basicamente pedir um
‫vetor F.
‫Então está dizendo que se você passar dois argumentos, ambos são fatores.
‫Eu vou te dizer o meu valor de retorno que é este bit aqui do lado esquerdo será um duplo.
‫Agora, um double é essencialmente apenas um float mais preciso.
‫Então poderíamos dizer essencialmente.
‫Isso é um flutuador saindo daqui.
‫A expressão que criamos cria um float.
‫Impressionante.
‫Então o que vamos fazer é tentar encontrar a distância entre o local inicial.
‫Então, vamos digitar start location como o primeiro argumento.
‫E então o segundo será o local atual.
‫Agora, não se preocupe, neste estágio, não importa de que maneira colocamos essa rodada porque a
‫distância entre dois vetores será a mesma.
‫Quer você comece de A para B ou de B para A, sempre será a mesma distância.
‫Então, poderíamos ter colocado isso de qualquer maneira, se você quiser.
‫Então agora temos uma expressão que retorna um float.
‫Então, eu gostaria de desafiá-lo a atualizar uma nova propriedade usando esta expressão para que possamos ver qual é
‫o seu valor.
‫Então crie uma nova propriedade de você float e chame-a como quiser e, em seguida, atualize isso a cada tomada
‫com o valor de f vector dest e, em seguida, jogue o jogo e veja o que acontece.
‫Você obtém a saída que você esperaria?
‫Aumenta tão rapidamente quanto você esperaria?
‫Pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então vamos criar, em primeiro lugar, a nova propriedade.
‫Então, vou colocar isso acima do nosso local inicial para agruparmos todas as propriedades.
‫Eu vou ter uma nova edição de propriedade em qualquer lugar, um fato real.
‫Não precisamos ser capazes de editar isso.
‫Então você pode imaginar que em qualquer lugar significa que você pode editá-lo.
‫Bem, também temos um visível em qualquer lugar que não nos permite editá-lo, mas nos permite vê-lo.
‫Então é isso que eu vou usar no lugar.
‫Vou deixar a categoria desativada aqui para simplificar, porque estamos apenas usando essa variável para poder
‫ver o que está acontecendo.
‫Será um tipo float, como mencionei, e vou chamar isso de distância movida para que fique claro
‫o que estamos vendo no inspetor.
‫E vou definir seu padrão para menos um apenas para que saibamos que o atualizamos.
‫Se disser menos um, sabemos que a atualização não foi concluída.
‫Então eu vou tomar essa distância movida.
‫Vamos passar para a nossa implementação e vamos definir a distância movida é igual a afetar a
‫distância entre dois pontos e dois pontos.
‫Então, usando esse operador de resolução de escopo para obter a função de distância e, em seguida, terminar a linha
‫com um ponto e vírgula.
‫Pode deixar.
‫Então, vamos seguir em frente no Unreal e apertar o botão de compilação e podemos seguir em frente e fechar o
‫terminal.
‫E devemos ver essa distância movida, aparecendo como menos um.
‫Você pode ver que está acinzentado porque não posso editá-lo porque está visível, não edite de qualquer maneira.
‫Então vamos em frente e aperte o play e vamos ter que ter certeza de selecionar a plataforma
‫móvel no contorno e podemos dar uma olhada na distância movida aqui e você pode ver
‫que a propriedade está ocupando rapidamente cerca de 1 a 300 por segundo.
‫Então está indo na velocidade que eu esperaria, ou seja, 100 por segundo.
‫Então parece um sucesso.
‫Conseguimos calcular a distância percorrida e também visualizá-la.
‫Coisas boas.
‫Vejo você na próxima palestra.