Exemple #1
0
    IEnumerator BrownBallEffect()
    {
        if (br_BrownBallEffect_sw)
        {
            yield break;
        }

        br_BrownBallEffect_sw = true;

        Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>();

        float speed = 2f;

        transform.localScale = new Vector3(0, 0, 0);

        br_tempPlayerSpeed = hitPlayer.moveSpeed;

        hitPlayer.moveSpeed -= speed;

        myColider.radius = 0f;
        yield return(new WaitForSeconds(0.005f));

        Debug.Log("Speed Down");

        yield return(new WaitForSeconds(3.5f));

        hitPlayer.moveSpeed = br_tempPlayerSpeed;

        Debug.Log("Speed return");

        yield return(new WaitForSeconds(5f));

        Destroy(this.gameObject);
    }
Exemple #2
0
    private void OnTriggerExit2D(Collider2D hit)
    {
        Ball hitBall = FindObjectOfType <Ball>();

        Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>();

        if (!b_blueBallSpell_sw)
        {
            return;
        }

        float speed = 3f;

        if (b_resetToSpeeds)
        {
            hitPlayer.moveSpeed = b_tempPlayerSpeed;

            hitPlayer.onBlueEffect = false;

            if (hit == hitBall)
            {
                hitBall.moveSpeed = b_tempBallSpeed;

                hitBall.onBlueEffect = false;
            }

            return;
        }

        if (hitPlayer.onBlueEffect)
        {
            hitPlayer.moveSpeed    = b_tempPlayerSpeed;
            hitPlayer.onBlueEffect = false;
        }

        if (hit == hitBall && hitBall.onBlueEffect)
        {
            hitBall.moveSpeed    = b_tempBallSpeed;
            hitBall.onBlueEffect = false;
        }

        if (hitPlayer.moveSpeed == 0)
        {
            Debug.Log("Error: Player's moveSpeed is zero.");
        }
    }
Exemple #3
0
    void OnTriggerEnter2D(Collider2D hit)
    {
        if (!inViewport)
        {
            return;
        }
        //(공용) * 파란공이 효과가 터지면 else 쪽으로 넘어감.
        if (!b_blueBallSpell_sw)
        {
            Ball hitBall = FindObjectOfType <Ball>();

            if (hit.tag == "Blue" && hitBall.b_startBludEffect)
            {
                return;
            }

            if (hit.tag == "Player")
            {
                HitPlayer();
            }

            bounceCount--;

            if (bounceCount <= 0)
            {
                NoCount();
            }

            if (hit.tag == "Wall")
            {
                SetDestination();
            }

            else
            {
                direction = new Vector3(0, 0, 0);
                direction = transform.position - hit.transform.position;
                direction.Normalize();
            }
        }
        //(파란공 전용) 효과가 터졌을시
        else
        {
            Ball hitBall = FindObjectOfType <Ball>();

            Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>();

            float speed = 0.3f;


            if (b_resetToSpeeds)
            {
                hitPlayer.moveSpeed = b_tempPlayerSpeed;

                if (hit == hitBall)
                {
                    hitBall.moveSpeed = b_tempBallSpeed;
                }

                return;
            }

            if (!hitPlayer.onBlueEffect)
            {
                b_tempPlayerSpeed      = hitPlayer.moveSpeed;
                hitPlayer.onBlueEffect = true;
            }

            if (hit == hitBall && !hitBall.onBlueEffect)
            {
                b_tempBallSpeed      = hitBall.moveSpeed;
                hitBall.onBlueEffect = true;
            }

            switch (hit.tag)
            {
            case "Red":
            case "Blue":
            case "Brown":
                if (hit == hitBall)
                {
                    hitBall.moveSpeed += speed;
                }
                break;

            case "Player":
                hitPlayer.moveSpeed += speed;
                break;

            default:
                return;
            }
        }
    }