示例#1
0
    void ataque()
    {
        if (timeForm != temTimer && timeForm % 2 == 0)
        {
            for (int i = 0; i < players.Count; i++)
            {
                PlayerController player = (PlayerController)players[i];

                if (player)
                {
                    Vector3 rel = player.transform.position;
                    Vector3 pos = transform.position;

                    Vector3 heading = rel - pos;

                    float   distance  = heading.magnitude;
                    Vector3 direction = player.transform.position - pos; // This is now the normalized direction.

                    direction = direction.normalized;

                    temTimer = timeForm;
                    Vector3        initVector    = new Vector3(transform.position.x, transform.position.y + 1, transform.position.z);
                    Transform      balaTrasnform = Instantiate(balaPrefact, initVector, Quaternion.identity);
                    BalaController b             = balaTrasnform.GetComponentInChildren <BalaController>();
                    b.myEnemy     = this;
                    b.typePlayer  = "Enemigo";
                    b.refVector   = direction;
                    b.isRefVector = true;
                }
            }
        }
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        if (players.Count < 2)
        {
            GameObject[] gameObjectsPlayers = GameObject.FindGameObjectsWithTag("Player");

            if (gameObjectsPlayers.Length >= 2)
            {
                foreach (var gameObjectPlayer in gameObjectsPlayers)
                {
                    PlayerController player = gameObjectPlayer.GetComponent <PlayerController>();
                    players.Add(player);
                }
            }
        }

        if (power != 0)
        {
            timer -= (Time.deltaTime);

            int timeForm = (int)(timer);

            if (timeForm != temTimer)
            {
                temTimer = timeForm;


                if (power > 0)
                {
                    power -= 10;
                }
                else if (power < 0)
                {
                    power += 10;
                }
            }
        }

        if (Input.GetKeyDown(up) && isGrounded)
        {
            jump     = true;
            isJumped = true;
        }


        if (Input.GetKeyDown(kdisparo))
        {
            if (isDisparo == false)
            {
                Vector3 initVector = new Vector3(transform.position.x, transform.position.y, transform.position.z);
                float   dist       = 2F;

                switch (vista)
                {
                case 1:
                    initVector = new Vector3(transform.position.x, transform.position.y - dist, transform.position.z);
                    break;

                case 2:
                    initVector = new Vector3(transform.position.x, transform.position.y + dist, transform.position.z);
                    break;

                case 3:
                    initVector = new Vector3(transform.position.x - dist, transform.position.y, transform.position.z);
                    break;

                case 4:
                    initVector = new Vector3(transform.position.x + dist, transform.position.y, transform.position.z);
                    break;
                }

                Transform      balaTrasnform = Instantiate(prefactBala, initVector, Quaternion.identity);
                BalaController b             = balaTrasnform.GetComponentInChildren <BalaController>();
                b.myPlayer = this;
                if (power > 0)
                {
                    b.meshRenderer.material = b.balaAzul;
                    power -= 20;
                }
                else
                {
                    b.meshRenderer.material = b.balaRoja;
                    power += 20;
                }


                b.typePlayer = "Player";

                switch (vista)
                {
                case 1:
                    b.up = true;
                    break;

                case 2:
                    b.down = true;
                    break;

                case 3:
                    b.left = true;
                    break;

                case 4:
                    b.right = true;
                    break;
                }

                isDisparo = true;
                StartCoroutine(DisparoYa());
            }
        }


        if (Mathf.Abs(power) > 200)
        {
            if (power > 0)
            {
                power = 200;
            }
            else
            {
                power = -200;
            }
        }

        if (Input.GetKeyDown(KeyCode.Space) && isRepulsion)
        {
            keySpace = true;
        }


        if (Input.GetKeyDown(left))
        {
            moveLeft = true;
        }

        if (Input.GetKeyDown(right))
        {
            moveRight = true;
        }


        if (Input.GetKeyUp(left))
        {
            moveLeft = false;
        }

        if (Input.GetKeyUp(right))
        {
            moveRight = false;
        }


        luz.intensity = map(Mathf.Abs(this.power), 0, 200, minLuz, maxLuz);
        luz.range     = map(Mathf.Abs(this.power), 0, 200, 10, 15) / 0.4f;

        if (power > 0)
        {
            luz.color = new Color(0, 0, 1, 0.3f);
        }
        else
        {
            luz.color = new Color(1, 0, 0, 0.3f);
        }

        // anim.SetFloat("Speed", Mathf.Abs(rb.velocity.x));
        anim.SetBool("Grounded", isGrounded);
        anim.SetBool("Move", (moveLeft || moveRight));
        anim.SetBool("Disparo", isDisparo);
        anim.SetBool("Gano", gano);
        //anim.SetBool("Perdio", perdio);
    }