예제 #1
0
        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;
        }
예제 #2
0
        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;
            }
        }