‫Olá e bem-vindo.
‫Nesta palestra, veremos como podemos definir nossa plataforma móvel usando uma velocidade vetorial em suas variáveis
‫de membro.
‫E vamos ver como podemos tornar sua taxa de quadros de movimento independente usando algo chamado
‫tempo Delta.
‫Ok, vamos mergulhar.
‫Então, até este ponto, estávamos apenas atualizando um único componente de nosso vetor de cada vez.
‫Agora, e se eu lhe disser que não temos que fazer dessa maneira?
‫E se pudermos atualizar todo o vetor em uma certa quantidade de uma só vez?
‫Bem, nós podemos.
‫Vetores podem ser adicionados a outros fatores se vimos na seção anterior.
‫Então, o que podemos fazer é ir para nossa plataforma móvel para H e criar algo que
‫é nossa plataforma móvel, o vetor de velocidade que nos diz a direção e a velocidade em que queremos ir.
‫Então, a maneira como fazemos isso é criar um U de propriedade bastante familiar e vamos editá-lo
‫em qualquer lugar para que fique visível no inspetor e, em seguida, será um
‫vetor do tipo F, como fizemos antes, e vamos chamá-lo de velocidade da plataforma e podemos dar-lhe algo por enquanto.
‫Então vamos fazer um construtor de vetor F e então vamos dizer centenas no componente X e zero e zero
‫nos outros e então ponto e vírgula para terminar.
‫E eu quero mostrar a você apenas mais um truque aqui é que junto com a edição, em qualquer lugar podemos colocar
‫outros argumentos separados por vírgula para este U.
‫Coisa de propriedade, que se parece um pouco com uma função.
‫Na verdade, você pode colocar um que é chamado de categoria com C maiúsculo e depois colocar o sinal de igual.
‫E eu não costumo deixar um espaço entre estes são sinais de igualdade categoria igual.
‫E então você pode dar uma categoria que você quer que apareça.
‫Aqui embaixo você pode ver que existem categorias para replicação de renderização de transformação.
‫Esses são os tipos de categorias que queremos chamar de plataforma móvel para que tenhamos um tipo
‫de categoria de plataforma móvel para colocar essas variáveis.
‫E note que eu uso aspas duplas nessa categoria.
‫Essa é a sintaxe correta.
‫Você precisa incluí-los.
‫E então o que podemos fazer é usar essa nova variável de membro no C++.
‫Então, em vez de definir o componente X da localização atual, deixe-me remover completamente essa
‫linha e reescrevê-la como a localização atual é igual à localização atual mais a velocidade da plataforma, como, digamos, coloque ponto e vírgula no final da linha e
‫vamos para o Unreal e clique em compilar e veja como isso vai.
‫Então isso foi compilado com sucesso.
‫E você pode ver que agora tenho esta seção de plataforma móvel na minha plataforma móvel com uma velocidade de plataforma
‫e seu componente x está definido como 100.
‫O que acontece se eu for e apertar o play?
‫Bem, a plataforma acelera rapidamente na distância porque estou adicionando cem unidades a cada
‫quadro.
‫Isso é muito.
‫Mas eu quero que ele se mova a uma velocidade de cerca de 100 centímetros por segundo.
‫Isso é apenas um metro por segundo.
‫Não é muito rápido.
‫Então, por que está indo tão rápido?
‫Bem, por causa da minha taxa de quadros.
‫Bem, se eu estivesse em um sistema mais lento, estaria se movendo mais devagar.
‫E se eu estivesse em um sistema mais rápido, ele estaria se movendo mais rápido.
‫Isso não parece fazer sentido.
‫Então, vamos falar sobre o uso do tempo Delta.
‫O que é hora Delta?
‫Bem, usar o tempo Delta no Unreal pode nos dizer quanto tempo cada quadro levou para ser executado foi o tempo Delta.
‫Bem, se você for ao código do Visual Studio, verá que o tempo Delta é uma variável mencionada aqui no início
‫do take.
‫Este é realmente um parâmetro de entrada.
‫É a entrada para nossa função.
‫Então podemos usar aqui.
‫Essencialmente, como usamos uma variável local, podemos usá-la dentro do corpo da função tick.
‫Então, ele nos diz quanto tempo um quadro levou para ser executado.
‫Mas por que isso é importante?
‫Porque quando multiplicamos algo pelo tempo delta, isso essencialmente torna a taxa de quadros do nosso jogo independente, o que basicamente significa
‫que o jogo se comporta da mesma forma em um computador rápido ou lento.
‫Então vamos dar uma olhada em um exemplo ilustrativo se eu quiser mover algo a cada segundo uma unidade para
‫a esquerda.
‫Veja como ficaria em diferentes máquinas.
‫Eu tenho computação lenta.
‫Eu só posso fazer dez quadros por segundo em um computador rápido, que pode fazer 100 quadros por segundo.
‫Agora a duração desses quadros é diferente.
‫Portanto, no computador lento, a duração do quadro é 0. 1 de segundo.
‫Se eu pudesse encaixar apenas dez deles em um segundo e em um computador rápido, seria. 01 de segundo, muito menos porque pode
‫executar as coisas mais rápido.
‫Não demora muito para computar o quadro.
‫Então, se eu multiplicar pela duração do quadro, multiplico minha unidade pela duração do quadro.
‫Então você vai ver isso em 1/2.
‫Então, onde dez quadros foram executados, eu recebo uma unidade de movimento.
‫E o mesmo é verdade.
‫Se eu fiz 100 quadros de execução, ainda recebo uma unidade de movimento.
‫Então, eu gostaria de desafiá-lo a multiplicar pelo tempo Delta.
‫Então, o que vamos fazer é lembrar que podemos multiplicar vetores por um valor de ponto flutuante
‫para dimensionar essa magnitude.
‫E a maneira como podemos fazer isso em C++ é usando o operador estrela.
‫É assim que fazemos a multiplicação.
‫Não há operador de sinal de multiplicação.
‫Seria confundido com um X, então usamos o operador estrela para denotar a multiplicação.
‫E eu gostaria que você compilasse e testasse seus resultados.
‫Então multiplique pelo tempo delta, multiplique a velocidade pelo tempo delta e veja o que acontece.
‫Faça uma pausa, grave o vídeo e experimente.
‫OK.
‫Bem vindo de volta.
‫Então é a velocidade da plataforma que queremos multiplicar aqui.
‫Agora, podemos extrair isso para uma variável separada, mas na verdade podemos simplesmente colocar uma multiplicação pelo
‫tempo delta no final dessa linha, obviamente antes do ponto e vírgula, porque é antes do final da
‫instrução.
‫E o que é interessante aqui é que há um pouco de precedência de operadores
‫acontecendo aqui em que a multiplicação entre a velocidade da plataforma e o tempo Delta acontecerá antes da
‫adição ao local atual.
‫Agora, isso segue regras matemáticas normais para uma lista completa dessas regras.
‫Não vou entrar em detalhes aqui, mas você pode dar uma olhada na página em ordem
‫de operações na Wikipedia.
‫Existem muitas regras diferentes em diferentes idiomas, seja massa corporal, massa de cama, massa de animal de estimação, massa
‫de cama.
‫Há um monte de siglas diferentes.
‫Então, qualquer um que você cresceu usando, esse é o que eu recomendo que você use.
‫Para mim, era massa corporal, mas você sabe, em outros lugares é diferente.
‫Portanto, vale a pena notar que podemos simplesmente escrevê-lo assim.
‫Mas se quisermos garantir que algo aconteça em uma ordem diferente, você pode usar
‫parênteses para indicar isso.
‫Então eu poderia, só para deixar as coisas mais claras, vou colocar parênteses em torno dessa multiplicação só para mostrar
‫que é isso que acontece.
‫Primeiro a multiplicação e depois a adição ao local atual.
‫Então vamos para Unreal e testar isso.
‫Vamos bater, compilar, e quando terminar, vamos dar play.
‫E agora vemos as plataformas se movendo a uma velocidade muito mais normal porque na verdade está se movendo
‫a um metro por segundo, o que é bom para uma plataforma móvel.
‫Então você pode ver que isso nos ajudou a reduzir a velocidade, mas agora também é uma taxa de quadros, velocidade
‫independente.
‫Se meu computador estivesse funcionando porque alguma outra coisa estava acontecendo em segundo plano, isso ainda
‫teria a mesma aparência e funcionaria da mesma forma no jogo.
‫Coisas boas.
‫Vejo você na próxima palestra.