Exemple #1
0
    public void respawn(int id, float velocidade)
    {
        Projetil p = poolProjetils.Dequeue();

        p.transform.position = arraySpawns[id].position;
        p.SpeedP             = velocidade;
    }
Exemple #2
0
    public void ProjetilCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        Projetil _proj = hit.collider.GetComponent <Projetil>();

        if (!hitedProjetils.Contains(_proj))
        {
            hitedProjetils.Add(_proj);
            if (_proj.destrutivel)
            {
                FindObjectOfType <AudioManager>().Play("brustArrow");
                if (ArrowDamage)
                {
                    Instantiate(ArrowDamage, _proj.transform.position, Quaternion.identity);
                }
            }

            if (_proj.solido)
            {
                arrow.transform.SetParent(_proj.transform);
                communAction(arrow);
            }
            else
            {
                if (_proj.colideFlecha)
                {
                    communAction(arrow);
                    Destroy(gameObject, 0.5f);
                }
            }
        }
    }
Exemple #3
0
 public void addtopool(Projetil p)
 {
     if (poolProjetils.Count < poolMax)
     {
         p.transform.position = Vector3.up * 8000;
         poolProjetils.Enqueue(p);
         print("movido pra queue");
     }
     else
     {
         Destroy(p.gameObject);
         print("destruido");
     }
 }
Exemple #4
0
 void spawnProjetil(int id, float velocidade)
 {
     if (poolProjetils.Count > 0)
     {
         //print("respawn pool");
         respawn(id, velocidade);
     }
     else
     {
         print("cria novo");
         Projetil p = Instantiate(projPrefab, arraySpawns[id].position, Quaternion.identity).GetComponent <Projetil>();
         p.SpeedP = velocidade;
     }
 }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "DisparoSimples")
        {
            Projetil projetil = collision.gameObject.GetComponent <Projetil>();
            vidaInimigo -= projetil.GetDano();

            Destroy(collision.gameObject);

            if (vidaInimigo <= 0)
            {
                Destroy(this.gameObject);
            }
        }
    }
    public void ProjetilCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        Projetil _proj = hit.collider.GetComponent <Projetil>();

        if (!hitedProjetils.Contains(_proj))
        {
            hitedProjetils.Add(_proj);
            if (_proj.destrutivel)
            {
                FindObjectOfType <AudioManager>().Play("piercingArrow");
                if (ArrowDamage)
                {
                    Instantiate(ArrowDamage, _proj.transform.position, Quaternion.identity);
                }
            }

            _proj.damage(damage);
        }
    }
    public void atirar()
    {
        int n = Mathf.RoundToInt(tempoCarregando) * projeteisPorSegundo;

        if (n == 0)
        {
            n = 1;
        }

        for (int i = 0; i < n; i++)
        {
            var      rand = Random.insideUnitCircle * 1f;
            Projetil proj = (Projetil)Instantiate(projetil, cajado.position + (Vector3)rand, Quaternion.Euler(0, 0, 90));
            if (this.transform.eulerAngles.y == 0)
            {
                proj.ladoDireito = false;
            }
            else
            {
                proj.ladoDireito = true;
            }
        }
        tempoCarregando = 0f;
    }
    // Update is called once per frame
    void FixedUpdate()
    {
        if (Input.GetKey("d"))
        {
            animator.SetBool("Run", true);
            direcao = "direita";

            Vector3 v3 = sprite.transform.localScale;
            v3.x = 1;
            sprite.transform.localScale = v3;

            Vector2 v2 = rb.velocity;
            rb.velocity = new Vector2(2.0f, v2.y);
        }
        else
        if (Input.GetKey("a"))
        {
            animator.SetBool("Run", true);

            direcao = "esquerda";
            Vector3 v3 = sprite.transform.localScale;
            v3.x = -1;
            sprite.transform.localScale = v3;

            Vector2 v2 = rb.velocity;
            rb.velocity = new Vector2(-2.0f, v2.y);
        }
        else
        {
            animator.SetBool("Run", false);
        }

        if (Input.GetKeyDown("w"))
        {
            if (onGround)
            {
                animator.SetTrigger("Jump");

                Vector2 v2 = rb.velocity;
                rb.velocity = new Vector2(v2.x, 3.0f);

                onGround = false;
            }
        }

        if (Input.GetKeyDown("space"))
        {
            if (Input.GetKey("a") || Input.GetKey("d"))
            {
                animator.SetTrigger("Fire_Run");
            }
            else
            {
                animator.SetTrigger("Fire_Idle");
            }

            Vector2 newv2;

            GameObject prefab   = Resources.Load("Prefab/Tiro", typeof(GameObject)) as GameObject;
            GameObject instance = Instantiate(prefab);
//			prefab.direcao = direcao;
//			Object prefab = AssetDatabase.LoadAssetAtPath("Assets/Prefab/tiro.prefab", typeof(GameObject));
//			GameObject clone = Instantiate(prefab, new Vector3(2.0F, 0, 0), Quaternion.identity) as GameObject;

            Projetil prj = prefab.GetComponent <Projetil>();
            prj.direcao = direcao;
            newv2       = gameObject.transform.position;
            newv2.x     = newv2.x + 1.0f;
            newv2.y     = newv2.y + 1.1f;
            instance.transform.position = newv2;

//			Debug.Log("Player Position: "+ gameObject.transform.position);
//			Debug.Log("Projetil Position: "+ instance.transform.position);
        }
    }