예제 #1
0
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            canhao      = new Canhao();
            disco       = DiscoVoador.Instancia;
            cenario     = new Cenario();
            roda        = new Roda();
            bolasCanhao = new List <BolaCanhao>();

            canhao.Imagem  = Content.Load <Texture2D>(@"images/canhao");
            canhao.Posicao = new Vector2(25, 453);
            canhao.Som     = Content.Load <SoundEffect>(@"sounds/tiro");

            roda.Imagem  = Content.Load <Texture2D>(@"images/roda");
            roda.Posicao = new Vector2(23, 405);

            cenario.Imagem  = Content.Load <Texture2D>(@"images/cenario1");
            vida            = Content.Load <Texture2D>(@"images/barrahp");
            cenario.Posicao = new Vector2(0, 0);

            disco.Imagem  = Content.Load <Texture2D>(@"images/disco");
            disco.Som     = Content.Load <SoundEffect>(@"sounds/hit");
            disco.Posicao = new Vector2(0, 0);
            disco.sprite  = Content.Load <Texture2D>(@"images/explosao");
        }
예제 #2
0
        private void CapturarMovimentoUsuario(KeyboardState keyState, Canhao canhao, GraphicsDevice graphicsDevice, GameTime time)
        {
            SetDirecao(keyState);
            bool houveMovimento = keyState.IsKeyDown(Keys.Right) || keyState.IsKeyDown(Keys.Left) || keyState.IsKeyDown(Keys.Down) || keyState.IsKeyDown(Keys.Up);

            if (houveMovimento)
            {
                if (velocidadeInicial < 3.5)
                {
                    velocidadeInicial = velocidadeInicial + ACELERACAO * ((float)time.TotalGameTime.TotalMilliseconds - totalMiliseconds) / 1000;
                }
            }
            else
            {
                velocidadeInicial = velocidadeInicial - ACELERACAO * ((float)time.TotalGameTime.TotalMilliseconds - totalMiliseconds) / 1000;
                if (velocidadeInicial < 0)
                {
                    velocidadeInicial = 0;
                    return;
                }
            }

            Rectangle tela         = graphicsDevice.Viewport.Bounds;
            float     limiteAltura = tela.Height - Imagem.Height - canhao.Imagem.Height - (tela.Height - canhao.Posicao.Y);

            bool ultrapassarTela = (Direcao == Enuns.DirecaoDisco.Baixo && Posicao.Y >= limiteAltura) ||
                                   (Direcao == Enuns.DirecaoDisco.Cima && Posicao.Y < 0) ||
                                   (Direcao == Enuns.DirecaoDisco.Direita && Posicao.X >= tela.Width - Imagem.Width) ||
                                   (Direcao == Enuns.DirecaoDisco.Esquerda && Posicao.X < 0);

            if (ultrapassarTela)
            {
                velocidadeInicial = 0;
            }
            else
            {
                if (Direcao == Enuns.DirecaoDisco.Baixo)
                {
                    Posicao = new Vector2(Posicao.X, Posicao.Y + velocidadeInicial);
                }
                else if (Direcao == Enuns.DirecaoDisco.Cima)
                {
                    Posicao = new Vector2(Posicao.X, Posicao.Y - velocidadeInicial);
                }
                else if (Direcao == Enuns.DirecaoDisco.Direita)
                {
                    Posicao = new Vector2(Posicao.X + velocidadeInicial, Posicao.Y);
                }
                else if (Direcao == Enuns.DirecaoDisco.Esquerda)
                {
                    Posicao = new Vector2(Posicao.X - velocidadeInicial, Posicao.Y);
                }
            }
        }
예제 #3
0
 internal void VerificarMovimento(KeyboardState keyState, Canhao canhao, GraphicsDevice graphicsDevice, GameTime gameTime)
 {
     if (_Queda.EmQueda)
     {
         Cair(gameTime, graphicsDevice);
     }
     else
     {
         CapturarMovimentoUsuario(keyState, canhao, graphicsDevice, gameTime);
     }
     totalMiliseconds = (float)gameTime.TotalGameTime.TotalMilliseconds;
 }
예제 #4
0
            public static InformacaoDiscoVoador GetInformacao(Canhao canhao)
            {
                InformacaoDiscoVoador inf         = new InformacaoDiscoVoador();
                DiscoVoador           discoVoador = DiscoVoador.Instancia;

                inf.meiaLargura     = discoVoador.Imagem.Height * 1.0f / 2;
                inf.meiaAltura      = discoVoador.Imagem.Width * 1.0f / 2;
                inf.yDiscoVoador    = discoVoador.Posicao.Y + inf.meiaLargura;
                inf.xDiscoVoador    = discoVoador.Posicao.X + inf.meiaAltura;
                inf.catetoOposto    = canhao.Posicao.Y - inf.yDiscoVoador;
                inf.catetoAdvacente = inf.xDiscoVoador - canhao.Posicao.X;
                inf.distancia       = (float)Math.Sqrt(Math.Pow(inf.catetoOposto, 2) + Math.Pow(inf.catetoAdvacente, 2));
                return(inf);
            }
예제 #5
0
        private void CapturarMovimentoUsuario(KeyboardState keyState, Canhao canhao, GraphicsDevice graphicsDevice, GameTime time)
        {
            SetDirecao(keyState);
            bool houveMovimento = keyState.IsKeyDown(Keys.Right) || keyState.IsKeyDown(Keys.Left) || keyState.IsKeyDown(Keys.Down) || keyState.IsKeyDown(Keys.Up);

            if (houveMovimento)
            {
                if (velocidadeInicial < 3.5)
                {
                    velocidadeInicial = velocidadeInicial + ACELERACAO * ((float)time.TotalGameTime.TotalMilliseconds - totalMiliseconds) / 1000;
                }
            }
            else
            {
                velocidadeInicial = velocidadeInicial - ACELERACAO * ((float)time.TotalGameTime.TotalMilliseconds - totalMiliseconds) / 1000;
                if (velocidadeInicial < 0)
                {
                    velocidadeInicial = 0;
                    return;
                }
            }

            Rectangle tela = graphicsDevice.Viewport.Bounds;
            float limiteAltura = tela.Height - Imagem.Height - canhao.Imagem.Height - (tela.Height - canhao.Posicao.Y);

            bool ultrapassarTela = (Direcao == Enuns.DirecaoDisco.Baixo && Posicao.Y >= limiteAltura)
                || (Direcao == Enuns.DirecaoDisco.Cima && Posicao.Y < 0)
                || (Direcao == Enuns.DirecaoDisco.Direita && Posicao.X >= tela.Width - Imagem.Width)
                || (Direcao == Enuns.DirecaoDisco.Esquerda && Posicao.X < 0);

            if (ultrapassarTela)
            {
                velocidadeInicial = 0;
            }
            else
            {
                if (Direcao == Enuns.DirecaoDisco.Baixo)
                {
                    Posicao = new Vector2(Posicao.X, Posicao.Y + velocidadeInicial);
                }
                else if (Direcao == Enuns.DirecaoDisco.Cima)
                {
                    Posicao = new Vector2(Posicao.X, Posicao.Y - velocidadeInicial);
                }
                else if (Direcao == Enuns.DirecaoDisco.Direita)
                {
                    Posicao = new Vector2(Posicao.X + velocidadeInicial, Posicao.Y);
                }
                else if (Direcao == Enuns.DirecaoDisco.Esquerda)
                {
                    Posicao = new Vector2(Posicao.X - velocidadeInicial, Posicao.Y);
                }
            }
        }
예제 #6
0
 internal void VerificarMovimento(KeyboardState keyState, Canhao canhao, GraphicsDevice graphicsDevice, GameTime gameTime)
 {
     if (_Queda.EmQueda)
     {
         Cair(gameTime, graphicsDevice);
     }
     else
     {
         CapturarMovimentoUsuario(keyState, canhao, graphicsDevice, gameTime);
     }
     totalMiliseconds = (float)gameTime.TotalGameTime.TotalMilliseconds;
 }
예제 #7
0
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            canhao = new Canhao();
            disco = DiscoVoador.Instancia;
            cenario = new Cenario();
            roda = new Roda();
            bolasCanhao = new List<BolaCanhao>();

            canhao.Imagem = Content.Load<Texture2D>(@"images/canhao");
            canhao.Posicao = new Vector2(25, 453);
            canhao.Som = Content.Load<SoundEffect>(@"sounds/tiro");

            roda.Imagem = Content.Load<Texture2D>(@"images/roda");
            roda.Posicao = new Vector2(23, 405);

            cenario.Imagem = Content.Load<Texture2D>(@"images/cenario1");
            vida = Content.Load<Texture2D>(@"images/barrahp");
            cenario.Posicao = new Vector2(0, 0);

            disco.Imagem = Content.Load<Texture2D>(@"images/disco");
            disco.Som = Content.Load<SoundEffect>(@"sounds/hit");
            disco.Posicao = new Vector2(0, 0);
            disco.sprite = Content.Load<Texture2D>(@"images/explosao");
        }
예제 #8
0
 public static InformacaoDiscoVoador GetInformacao(Canhao canhao)
 {
     InformacaoDiscoVoador inf = new InformacaoDiscoVoador();
     DiscoVoador discoVoador = DiscoVoador.Instancia;
     inf.meiaLargura = discoVoador.Imagem.Height * 1.0f / 2;
     inf.meiaAltura = discoVoador.Imagem.Width * 1.0f / 2;
     inf.yDiscoVoador = discoVoador.Posicao.Y + inf.meiaLargura;
     inf.xDiscoVoador = discoVoador.Posicao.X + inf.meiaAltura;
     inf.catetoOposto = canhao.Posicao.Y - inf.yDiscoVoador;
     inf.catetoAdvacente = inf.xDiscoVoador - canhao.Posicao.X;
     inf.distancia = (float)Math.Sqrt(Math.Pow(inf.catetoOposto, 2) + Math.Pow(inf.catetoAdvacente, 2));
     return inf;
 }