Exemplo n.º 1
0
        public void Update(GameTime gameTime, KeyboardState teclado, KeyboardState tecladoAnterior, GamePadState _controle, GamePadState _controleanterior)
        {
            #region controle audio
            if (!playing_musica)
            {
                playing_musica = true;
                MediaPlayer.Play(musica);
                MediaPlayer.Volume = 0.5f;
            }
            #endregion
            jogador1.Update(gameTime, teclado, tecladoAnterior, _controle, _controleanterior);
            for (int i = 0; i < listaInimigos.Count; i++)
            {
                listaInimigos[i].Update(gameTime);

                // checa a colisao da nava com os inimigos
                if (jogador1.Colisao(listaInimigos[i].hitBox))
                {
                    listaInimigos.RemoveAt(i);
                    Nave_jogador.vidas--;
                }
            }


            #region teste hit tiro/inimigo
            for (int i = 0; i < Shot.listaTiros.Count; i++)
            {
                if (Shot.listaTiros[i].remover)
                {
                    Shot.listaTiros.RemoveAt(i);
                    if (inimigosRestantes == 0)
                    {
                        Shot.listaTiros.Clear();
                        Game1.estadoAtual = Game1.estados.FASE4;
                    }
                    continue;
                }
                for (int j = 0; j < listaInimigos.Count; j++)
                {
                    if (Shot.listaTiros[i].Colisao(listaInimigos[j].hitBox))
                    {
                        listaInimigos.RemoveAt(j);
                        inimigosRestantes--;
                        Shot.listaTiros[i].remover = true;
                    }
                }
            }
            #endregion

            if (listaInimigos.Count < 5)
            {
                posicao_i1.X = randomizador.Next(gw.ClientBounds.Width);
                posicao_i1.Y = randomizador.Next(gw.ClientBounds.Height);

                listaInimigos.Add(new Nave_inimigo(0, texturaInimigo, posicao_i1, 0f, gw, 15, _Content));
            }


            asteroide_gerenciador.Update(gameTime);
        }