private void LoopRadar() { double tempo = sw.Elapsed.TotalSeconds; posicaoAviao = aviao.PosicaoEm(tempo); if (!alvoDestruido && !aviaoAbatido && (posicaoAlvo - posicaoAviao).Mag() < 20000) { for (int i = 0; i < canhao.Tiros.Length && canhao.Tiros[i] != null; i++) { if (canhao.Tiros[i].Viajando(tempo) || canhao.Tiros[i].Viajando(tempoAnterior)) { if (AbateuAviao2(i, tempo, canhao.Tiros[i])) { aviaoAbatido = true; Console.WriteLine("AVIAO ABATIDO"); EnviarParaCliente(new Pacote(TipoPacote.AviaoAbatido)); sw.Stop(); emLoop = false; } } } double distanciaAviaoAlvo = (posicaoAviao - posicaoAlvo).Mag(); if (distanciaAviaoAlvo < 10000 && curretFrame % ((int)fps / 4) == 0) { EnviarParaCliente(ObterPacotePosicaoAviao(tempo, posicaoAviao)); Console.WriteLine("{0}: {1}", tempo, posicaoAviao); } if (distanciaAviaoAlvo < 1000 && curretFrame % ((int)fps / 4) == 0) { alvoDestruido = true; Console.WriteLine("ALVO DESTRUIDO"); EnviarParaCliente(new Pacote(TipoPacote.AlvoDestruido)); emLoop = false; sw.Stop(); } tempo = sw.Elapsed.TotalSeconds; posicaoAviao = aviao.PosicaoEm(tempo); } tempoAnterior = tempo; posicaoAviaoAnterior = posicaoAviao; }
public void TestAviao() { Aviao aviao = new Aviao(); aviao.Iniciar(); double t = 0; while (t < 15) { Console.WriteLine( "{0:f2} ==> Posicao: {1}, {2}", t, aviao.PosicaoEm(t), aviao.Trajetoria.GetType().Name); t += 0.5; } }