Esempio n. 1
0
            private BoxRestrictions BoxBoundaries(BoxParts part)
            {
                switch (part)
                {
                case BoxParts.Upper: return(new BoxRestrictions(this.Left, this.Top, this.Width, this.Height / 2.0));

                case BoxParts.Lower: return(new BoxRestrictions(this.Left, this.YCenter, this.Width, this.Height / 2.0));

                case BoxParts.Left: return(new BoxRestrictions(this.Left, this.Top, this.Width / 2.0, this.Height));

                case BoxParts.Right: return(new BoxRestrictions(this.XCenter, this.Top, this.Width / 2.0, this.Height));

                default: return(null);
                }
            }
Esempio n. 2
0
    }    //collisionEnter2d

    void OnExplode()
    {
        Destroy(gameObject);
        var trans = transform;

        for (int i = 0; i < 5; i++)
        {
            //trans.TransformPoint(randomX,randomY,0);
            var temp = trans.position;
            temp.x += (0.5f * Random.Range(-1, 1));
            //temp.y += (0.5f * Random.Range(-1,1));
            BoxParts clone = Instantiate(bodyParts, temp, Quaternion.identity) as BoxParts;
            // adding force to sideways
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.right * Random.Range(-50, 50));
            //adding force to up
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.up * Random.Range(50, 300));
        } //loop of explode
    }     //onexplode
Esempio n. 3
0
    }    // gameover

    void DieAndExplode()
    {
        if (isSoundOn)
        {
            AudioSource.PlayClipAtPoint(dieSoundClip, transform.position);
        }
        Destroy(gameObject);
        var trans = transform;

        for (int i = 0; i < 7; i++)
        {
            //trans.TransformPoint(randomX,randomY,0);
            var temp = trans.position;
            temp.x += (0.5f * Random.Range(-1, 1));
            //temp.y += (0.5f * Random.Range(-1,1));
            BoxParts clone = Instantiate(bodyParts, temp, Quaternion.identity) as BoxParts;
            // adding force to sideways
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.right * Random.Range(-50, 50));
            //adding force to up
            clone.GetComponent <Rigidbody2D>().AddForce(Vector3.up * Random.Range(50, 300));
        }        //loop of explode
    }
    private GameObject CreateGenericHelper <BoxT, Contained>(
        BoxParts <BoxT, Contained> prefab,
        Vector3 position, Vector3 dimensions,
        Transform parent)
        where BoxT : IBoxData <Contained>
    {
        BoxParts <BoxT, Contained> instantiated = parent ?
                                                  Instantiate <BoxParts <BoxT, Contained> >(prefab, parent) :
                                                  Instantiate <BoxParts <BoxT, Contained> >(prefab, position, Quaternion.identity);

        instantiated.SetDimensions(dimensions);

        instantiated.BodyObject.transform.localScale    = dimensions;
        instantiated.BodyObject.transform.localPosition = new Vector3(
            0f,
            dimensions.y / 2f,
            0f
            );

        float wallThickness = instantiated.RightWall.transform.localScale.x / 2f;

        instantiated.RightWall.transform.localPosition = new Vector3(
            dimensions.x / 2f + wallThickness, dimensions.y / 2f, 0f
            );
        instantiated.RightWall.transform.localScale = new Vector3(
            instantiated.RightWall.transform.localScale.x,
            dimensions.y,
            dimensions.z
            );

        wallThickness = instantiated.LeftWall.transform.localScale.x / 2f;
        instantiated.LeftWall.transform.localPosition = new Vector3(
            -dimensions.x / 2f - wallThickness, dimensions.y / 2f, 0f
            );
        instantiated.LeftWall.transform.localScale = new Vector3(
            instantiated.LeftWall.transform.localScale.x,
            dimensions.y,
            dimensions.z
            );

        wallThickness = instantiated.FrontWall.transform.localScale.z / 2f;
        instantiated.FrontWall.transform.localPosition = new Vector3(
            0f, dimensions.y / 2f, -dimensions.z / 2f - wallThickness
            );
        instantiated.FrontWall.transform.localScale = new Vector3(
            dimensions.x,
            dimensions.y,
            instantiated.FrontWall.transform.localScale.z
            );

        wallThickness = instantiated.BackWall.transform.localScale.z / 2f;
        instantiated.BackWall.transform.localPosition = new Vector3(
            0f, dimensions.y / 2f, dimensions.z / 2f + wallThickness
            );
        instantiated.BackWall.transform.localScale = new Vector3(
            dimensions.x,
            dimensions.y,
            instantiated.BackWall.transform.localScale.z
            );

        float floorThickness = instantiated.Floor.transform.localScale.y / 2f;

        instantiated.Floor.transform.localPosition = new Vector3(
            instantiated.Floor.transform.localPosition.x,
            -floorThickness,
            instantiated.Floor.transform.localPosition.z
            );
        instantiated.Floor.transform.localScale = new Vector3(
            dimensions.x,
            instantiated.Floor.transform.localScale.y,
            dimensions.z
            );

        instantiated.LidObject.transform.localPosition = new Vector3(
            instantiated.Floor.transform.localPosition.x,
            dimensions.y,
            instantiated.Floor.transform.localPosition.z
            );
        instantiated.LidObject.transform.localScale = new Vector3(
            dimensions.x,
            instantiated.LidObject.transform.localScale.y,
            dimensions.z
            );

        instantiated.gameObject.SetActive(true);
        return(instantiated.gameObject);
    }