Beispiel #1
0
    private void ShieldBurst(PlayerController center)
    {
        float   radius = powerUpManager.GetBurstRadius();
        float   force  = powerUpManager.GetBurstForce();
        Vector3 direction;
        Vector2 pushForce;
        int     pnum, cnum = center.GetPlayerNumber();

        foreach (PlayerController player in playerControllers)
        {
            pnum = player.GetPlayerNumber();
            if (pnum == cnum || !player.isActiveAndEnabled)
            {
                continue;
            }

            direction = player.transform.position - center.transform.position;
            if (direction.magnitude < radius)
            {
                pushForce  = new Vector2(direction.normalized.x, direction.normalized.y);
                pushForce *= force;
                player.GetComponent <Rigidbody2D>().AddForce(pushForce);
            }
        }
        foreach (GameObject ball in balls)
        {
            direction = ball.transform.position - center.transform.position;
            if (direction.magnitude < radius)
            {
                pushForce  = new Vector2(direction.normalized.x, direction.normalized.y);
                pushForce *= force;
                ball.GetComponent <Rigidbody2D>().AddForce(pushForce);
            }
        }
    }