예제 #1
0
 public BolaCanhao Disparar(ContentManager content, GameTime gameTime)
 {
     BolaCanhao b = new BolaCanhao(gameTime);
     b.Imagem = content.Load<Texture2D>(@"images/bolacanhao");
     b.Posicao = CalcularPosicaoBola(b);
     b.PosicaoInicial = b.Posicao;
     b.Radianos = RadianosCorrigido;
     Som.Play();
     return b;
 }
예제 #2
0
        public BolaCanhao Disparar(ContentManager content, GameTime gameTime)
        {
            BolaCanhao b = new BolaCanhao(gameTime);

            b.Imagem         = content.Load <Texture2D>(@"images/bolacanhao");
            b.Posicao        = CalcularPosicaoBola(b);
            b.PosicaoInicial = b.Posicao;
            b.Radianos       = RadianosCorrigido;
            Som.Play();
            return(b);
        }
예제 #3
0
 private void ControlarCanhao(GameTime gameTime)
 {
     if (canhao.NaMira(GraphicsDevice))
     {
         if (!disco.Destruido && (gameTime.TotalGameTime.TotalMilliseconds - miliSegundoUltimoTiro) > 300)
         {
             BolaCanhao b = canhao.Disparar(Content, gameTime);
             bolasCanhao.Add(b);
             miliSegundoUltimoTiro = gameTime.TotalGameTime.TotalMilliseconds;
         }
     }
     else
     {
         canhao.CorrigirCoordenada(gameTime);
     }
 }
예제 #4
0
        private Vector2 CalcularPosicaoBola(BolaCanhao b)
        {
            Vector2 vetor      = new Vector2();
            float   hipotenusa = (float)Math.Sqrt(Math.Pow(Imagem.Width, 2) + Math.Pow(Imagem.Height, 2));

            vetor.X = Posicao.X + hipotenusa * (float)Math.Cos(RadianosCorrigido);
            vetor.Y = Posicao.Y - hipotenusa * (float)Math.Sin(RadianosCorrigido);

            if (AnguloCorrigido > 45)
            {
                vetor.Y -= (b.Imagem.Height * 1.0f / 2) * (float)Math.Sin(Radianos);
            }
            else if (AnguloCorrigido < 45)
            {
                vetor.X += (b.Imagem.Width * 1.0f / 2) * (float)Math.Sin(Radianos);
            }
            return(vetor);
        }
예제 #5
0
        private Vector2 CalcularPosicaoBola(BolaCanhao b)
        {
            Vector2 vetor = new Vector2();
            float hipotenusa = (float)Math.Sqrt(Math.Pow(Imagem.Width, 2) + Math.Pow(Imagem.Height, 2));
            vetor.X = Posicao.X + hipotenusa * (float)Math.Cos(RadianosCorrigido);
            vetor.Y = Posicao.Y - hipotenusa * (float)Math.Sin(RadianosCorrigido);

            if (AnguloCorrigido > 45)
            {
                vetor.Y -= (b.Imagem.Height * 1.0f / 2) * (float)Math.Sin(Radianos);
            }
            else if (AnguloCorrigido < 45)
            {
                vetor.X += (b.Imagem.Width * 1.0f / 2) * (float)Math.Sin(Radianos);
            }
            return vetor;
        }