public bool NaMira(GraphicsDevice graphicsDevice) { //Calcula a distância entre a base do canhão e o centro do disco voador InformacaoDiscoVoador inf = InformacaoDiscoVoador.GetInformacao(this); float x = Posicao.X + inf.distancia * (float)Math.Cos(RadianosCorrigido); float y = Posicao.Y - inf.distancia * (float)Math.Sin(RadianosCorrigido); return(Math.Abs(x - inf.xDiscoVoador) <= MARGEM_ERRO && Math.Abs(y - inf.yDiscoVoador) <= MARGEM_ERRO); }
internal void CorrigirCoordenada(GameTime gameTime) { if (gameTime.TotalGameTime.TotalMilliseconds - miliSegundoUltimaAcao > 200) { const float velocidade = 1.2f; InformacaoDiscoVoador inf = InformacaoDiscoVoador.GetInformacao(this); float seno = inf.catetoOposto / inf.distancia; float radiano = (float)Math.Asin(seno); if (radiano > RadianosCorrigido) { Angulo += velocidade; } else if (radiano < RadianosCorrigido) { Angulo -= velocidade; } miliSegundoUltimaAcao = gameTime.TotalGameTime.TotalMilliseconds; } }