Exemplo n.º 1
0
    private void Atira(Inimigo inimigo)
    {
        float tempoAtual = Time.time;


        if (tempoAtual > momentoDoUltimoDisparo + tempoDeRecarga)
        {
            momentoDoUltimoDisparo = tempoAtual;
            GameObject pontoDeDisparo          = this.transform.Find("CanhaoDaTorre/PontoDeDisparo").gameObject;
            Vector3    posicaoDoPontoDeDisparo = pontoDeDisparo.transform.position;
            GameObject projetilObject          = (GameObject)Instantiate(projetilPrefab, posicaoDoPontoDeDisparo, Quaternion.identity);
            Missil     missil = projetilObject.GetComponent <Missil> ();
            missil.DefineAlvo(inimigo);
        }
    }
Exemplo n.º 2
0
    // Instancia um míssil para ser disparado e passa informações sobre qual inimigo ele deverá seguir:
    private void Atira(Inimigo inimigo)
    {
        float tempoAtual = Time.time;

        if (tempoAtual > tempoUltimoDisparo + tempoRecarga)
        {
            tempoUltimoDisparo = tempoAtual;
            GameObject pontoDeDisparo = this.transform.Find("PontoDeDisparo").gameObject;
            Vector3    posicaoDisparo = pontoDeDisparo.transform.position;
            GameObject projetilObject = (GameObject)Instantiate(projetilPrefab, posicaoDisparo, Quaternion.identity);

            // Passa para o míssil o inimigo que ele deverá seguir:
            Missil missil = projetilObject.GetComponent <Missil> ();
            missil.DefineAlvo(inimigo);
        }
    }
Exemplo n.º 3
0
    private void Dispara()
    {
        GameObject alvo = EscolheAlvo();

        if (alvo)
        {
            float tempoAtual = Time.time;
            if (tempoAtual > tempoUltimoDisparo + tempoDeRecarga)
            {
                tempoUltimoDisparo = tempoAtual;
                //pega o game object responsável pela posição do ponto de disparo dentro do canhao
                GameObject pontoDeDisparo = this.transform.Find("canhaoDaTorre/pontoDeDisparo").gameObject;
                //pega a posicao do gameobject
                Vector3 posicaoPontoDeDisparo = pontoDeDisparo.transform.position;
                //instancia o missel (prefab) na posicao do gameObject
                GameObject missilPrefab = Instantiate(projetilPrefab, posicaoPontoDeDisparo, Quaternion.identity);
                Missil     missil       = missilPrefab.GetComponent <Missil> ();
                missil.DefineAlvo(alvo);
            }
        }
    }
Exemplo n.º 4
0
        /// <summary>
        /// Verifica a existência de colisões pixel a pixel
        /// </summary>
        /// <param name="cManager">Instância de ContentManager</param>
        /// <param name="scene">Instância de scene</param>
        /// <param name="sprite">Sprite a verificar</param>
        /// <param name="origemBala">Entidade que deu origem à bala</param>
        static public void Colision(ContentManager cManager, Scene scene, Sprite sprite, OrigemBala origemBala)
        {
            //Colisao com enimigos
            if (scene.Collides(sprite, out collided, out collisionPoint, scene.inimigos))
            {
                if (origemBala == OrigemBala.player)
                {
                    if (sprite is Missil)
                    {
                        Missil missil = (Missil)sprite;
                        missil.thrust.Destroy();
                        missil.Destroy();
                    }

                    //cria explosao
                    scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.2f));

                    if (collided is NPC)
                    {
                        NPC inimigo = (NPC)collided;
                        if (sprite is Missil)
                        {
                            scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.9f));
                            inimigo.Destroy();
                        }
                        else
                        {
                            inimigo.Vida--;
                        }
                    }

                    if (collided is Boss)
                    {
                        Boss boss = (Boss)collided;
                        if (sprite is Missil)
                        {
                            scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.9f));
                            boss.Vida -= 10;
                        }
                        else
                        {
                            boss.Vida--;
                        }
                    }

                    sprite.Destroy();
                }

                if (collided is Missil)
                {
                    Missil missil = (Missil)collided;
                    scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.2f));

                    if (missil.thrust != null)
                    {
                        missil.thrust.Destroy();
                    }
                    missil.Destroy();
                }
            }


            if (scene.Collides(sprite, out collided, out collisionPoint, scene.sprites))
            {
                if (collided is Cenario && sprite is Bala)
                {
                    scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.2f));
                }

                if (collided is Player)
                {
                    Player player = (Player)collided;
                    if (sprite is Missil)
                    {
                        Missil missil = (Missil)sprite;
                        missil.thrust.Destroy();
                        missil.Destroy();
                        player.Vida -= 2;
                        scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.4f));
                    }
                    else
                    {
                        player.Vida--;
                        scene.AddExplosao(new AnimatedSprite(cManager, "explosao", 9, 9, false, sprite.position, 0.2f));
                    }
                }

                if (!(collided is Bala))
                {
                    sprite.Destroy();
                }
            }
        }