Bem-vindo de volta a esta dupla parte do cálculo de uma trajetória.
Agora temos nosso método de cálculo da trajetória no roteiro da concha de incêndio.
Agora só temos que traduzir aqui as fórmulas que vimos no vídeo anterior para calcular onde aquele
tanque vai ficar na pista para que a bala possa ser calculada com sua velocidade para estar no mesmo
local e ao mesmo tempo.
Certo.
Portanto, vamos começar com este código.
Primeiro de tudo, quero mudar isso para devolver um vetor três e depois esse vetor três será realmente definido
na atualização.
Portanto, este ponto de transformação é igual ao vetor que retornamos.
Certo.
Portanto, vamos começar definindo todas as entradas para estas fórmulas.
Portanto, precisamos de um vetor três P, que é a posição do inimigo.
Portanto, isso vai igualar a posição de transformação do ponto inimigo.
Agora tem que ser relativo ao atirador.
Portanto, tiraremos a posição do atirador porque tudo isso está sendo calculado em relação ao atirador,
o que significa que você meio que obtém todas as coordenadas do inimigo para o espaço local de seus
atiradores.
Então precisamos de nosso vetor para a v.
Portanto, três v que é nosso vetor de avanço e velocidade do nosso inimigo.
Assim, o ponto inimigo transforma o ponto para frente multiplicado pela velocidade do inimigo.
Então, o ponto inimigo pega o componente e nós vamos pegar o roteiro de acionamento e, em seguida, pegar a velocidade e, em seguida,
vamos pegar a velocidade da bala.
Assim, os flutuadores são iguais ao ponto de bala para obter o projétil de movimento do componente e a velocidade do ponto lá.
Tudo bem, agora estou tendo um pequeno problema para lembrar se consegui que você colocasse o inimigo no topo
da lista.
Temos que passar através do inimigo para que possamos usar o valor.
Portanto, basta verificar se você o tem.
Se não o fez, basta colocá-lo lá dentro.
Certo.
Portanto, agora continuando, vamos criar A, B, C e D a partir de nossa fórmula quadrática.
Portanto, flutuar uma vontade é igual ao vetor 3. de V e V menos s.
Multiplicado por.
Sim.
E você pode ver onde isso está na fórmula.
Depois precisamos de um flutuador para B e precisamos de um flutuador para C.
Certo.
Portanto, este é um desafio para você é encontrar as fórmulas para B e C.
Pausa o vídeo agora dê uma olhada e nós voltaremos.
Vamos continuar digitando através disto.
Certo.
Como foi com eles?
Bem, na verdade são ambos produtos pontilhados, portanto, será um vetor 3. e B é P e V e depois C vai ser um vetor
3. produto.
Para P e p.
Certo.
Então podemos adicionar em D, então eu flutuo D e isso vai ser igual a B vezes B ou B ao quadrado menos C vezes A.
E na fórmula, na verdade tem C, A, vezes C, isto está dentro de sua raiz quadrada, assim.
Assim, podemos realmente tirar proveito da existência de quatro e dois nesses valores e cancelar esses
valores, que é o que você pode fazer se você estiver derivando esses valores de fórmulas quadráticas.
Portanto, precisamos realmente, antes de mais nada, descobrir qual é o valor de D.
Se D, que é o que está sob a raiz quadrada, vai ser um número pequeno.
Ok, então a bala não vai ser realmente rápida o suficiente para alcançar, nesse caso podemos voltar como zero
ou algo assim.
Então, vamos.
Se D for inferior a 0. 1 F, então podemos retornar o vetor 3. 0.
Certo.
Agora, se continuarmos com isto, então precisamos calcular qual é o elemento raiz quadrada real.
Portanto, a raiz quadrada flutuante é igual à raiz quadrada massiva de pontos de DX.
Certo.
Agora descobrimos anteriormente a partir de nossa equação raiz para nossos quadráticos que existem dois valores possíveis porque
há um valor mais em um valor menos, então eles podem ser dois.
Portanto, estamos realmente interessados em quais são esses dois valores, e então queremos escolher o melhor.
Então queremos que o tempo de flutuação um seja igual e o primeiro seja menos B, menos
a raiz quadrada dividida por C e flutuar t dois seja igual a que tempo para outro desafio?
O que esta segunda raiz do quadrático se tornará o vídeo de força.
Agora, experimente.
E quando voltarmos, eu continuarei digitando através dele.
Certo.
Como você foi?
Bem, a fórmula é negativa B mais ou menos a raiz quadrada, blá, blá, blá, blá.
Portanto, este será B negativo mais a raiz quadrada dividida por C.
Certo.
Portanto, agora temos estes dois valores.
Podemos descobrir qual deles realmente queremos usar.
Portanto, vamos criar um flutuador para o tempo real que usaremos e vamos definir isso inicialmente para zero.
Então vamos dizer que se um é inferior a zero e T dois é inferior a zero, então não há solução aceitável.
Por isso, neste caso, vamos definir t igual a zero.
Está bem?
Caso contrário, se t um for menor que zero, então t será igual a t dois.
Senão.
Se o PT dois for menor que zero, então t será igual a t um outro.
Usaremos o valor máximo que estamos saindo de lá.
Portanto, colocaremos t igual a matemática, f max, flutuação nova e depois t1t2.
Assim, a matemática f max toma um conjunto de flutuadores e lhe dá de volta o valor máximo que você pode então usar um pouco mais rápido
e fácil do que se você tivesse uma declaração que fizesse isso.
Mas é claro que você também pode fazer isso.
Agora, depois de passarmos por esta pequena lógica, vamos retornar T multiplicado por P
mais V.
Portanto, basicamente, vamos usar nosso tempo para multiplicar nossos valores a fim
de calcular onde a bala e o inimigo vão se cruzar.
E quando o fizerem, nós realmente usaremos isso como o vetor que estamos enviando de volta para os tanques em direção
à frente para que ele possa apontar dessa forma.
Certo.
Por isso, acho que estamos prontos para salvar isto e experimentá-lo.
Portanto, vamos salvá-lo.
Vamos voltar à unidade agora.
Mudei minha cor grandiosa para preto, para que você possa ver o que está acontecendo.
Se formos até o tanque, vamos nos lembrar de nosso roteiro de incêndio e do que precisa ir no inspetor.
Você terá uma concha, a torre, e então quer seu inimigo.
Portanto, arraste e solte seu inimigo da hierarquia para lá.
O próprio inimigo.
Não mudamos nada nisso.
Aumentei a velocidade para três só para que ande um pouco mais rápido quando estamos testando.
Além disso, eu fui até o pré-fabricado de conchas e mudei seu roteiro de mudança de conchas para três também lá embaixo.
Ok, então vamos experimentar este jogo de imprensa e assim que ele começar a funcionar, eu vou apenas atingir
a barra de espaço e veremos se interceptamos o tanque.
Sim.
Agora, em algum momento, você pode ver aqui que as coisas meio que caíram porque não podemos calcular
uma trajetória real.
Se eu apertar o play novamente e realmente atirar muitas balas, você verá que elas irão se movimentar
através da tela e à medida que o tanque se mover, ele se moverá através de todas elas até um ponto em que nossos tipos de matemática
se quebram.
Bem, não se avaria.
É quando vamos obter valores muito, muito pequenos e imprecisos.
Para que ali seja onde se avariou pela primeira vez.
Se sairmos daqui, estas balas vão ser o último lote que realmente se cruza com este tanque.
Quanto mais e mais se avança lá fora.
Agora, isso pode ser um pouco problemático.
Portanto, provavelmente não queremos que isso aconteça.
Também neste ponto, porque estamos retornando zero quando obtemos valores que não nos interessam e estamos tentando
definir o vetor de avanço do tanque para isso.
Estamos obtendo um vetor de visualização de rotação de olhar é erro zero.
Portanto, vamos voltar ao nosso código e consertar isso.
Certo.
Portanto, estamos retornando zero aqui em cima, que é onde está nosso problema.
Vamos descer na atualização e vamos realmente armazenar primeiro o valor retornado.
Então, vamos vetor 3, apontar para igual, calcular a trajetória e depois podemos testá-la se apontar para igual
vetor 3. 0.
Ou devo dizer que se não for igual ao vetor três zero, então nós o usaremos de fato para definir nossa transformação para frente.
Portanto, aponte lá para baixo.
Agora, além disso, onde estamos colocando T a zero, também não estamos realmente interessados nisso.
Então, em vez de fazer isso, subiremos aqui e devolveremos o vetor zero lá dentro.
Ok, vamos guardar isto e ter mais uma chance.
Está bem?
Então comece a bater na barra de espaço e então quando eu chegar o mais longe que eu puder, ela realmente
parará de enviar balas.
Mas você pode ver como os arcos do tanque ao redor, na verdade ele vai atravessar e atingir todas aquelas balas.
Certo.
Então, isso é simples.
Sim, simples.
Essa é provavelmente uma das formas mais simples de calcular o acerto de projéteis que não envolve realmente
aceleração e gravidade, o que se torna muito mais complexo.
Então este é o início.
E você pode apenas imaginar que a matemática daqui para coisas mais complexas se torna ainda mais complicada.
E quando voltarmos no próximo, vamos começar a olhar para a aceleração antes de olharmos para mais trajetórias.