Beispiel #1
0
    private void rotz(bool _dirPos)
    {
        GameObject[, ,] newCubeState = new GameObject[2, 2, 2];

        for (int k = 0; k < 2; ++k)
        {
            for (int i = 0; i < 2; ++i)
            {
                newCubeState[k, i, 1] = mRubiksCube[k, i, 1];
                mRotatingObjects.Add(mRubiksCube[k, i, 0]);
                spheresegscript sss = mRubiksCube[k, i, 0].transform.Find("orientation").GetComponent <spheresegscript>();
                sss.rot(Axis.Z, _dirPos);
            }
        }

        if (!_dirPos)
        {
            newCubeState[0, 0, 0] = mRubiksCube[1, 0, 0];
            newCubeState[1, 0, 0] = mRubiksCube[1, 1, 0];
            newCubeState[1, 1, 0] = mRubiksCube[0, 1, 0];
            newCubeState[0, 1, 0] = mRubiksCube[0, 0, 0];
        }
        else
        {
            newCubeState[1, 0, 0] = mRubiksCube[0, 0, 0];
            newCubeState[1, 1, 0] = mRubiksCube[1, 0, 0];
            newCubeState[0, 1, 0] = mRubiksCube[1, 1, 0];
            newCubeState[0, 0, 0] = mRubiksCube[0, 1, 0];
        }

        mRubiksCube = newCubeState;
    }
Beispiel #2
0
    private void resetCube()
    {
        int counter = 0;

        for (uint k = 0; k < 2; ++k)
        {
            for (uint i = 0; i < 2; ++i)
            {
                for (uint l = 0; l < 2; ++l)
                {
                    mRubiksCube[k, i, l] = mInitialCube[k, i, l];
                    mRubiksCube[k, i, l].transform.rotation = quarters[counter].transform.rotation;
                    mRubiksCube[k, i, l].transform.position = quarters[counter++].transform.position;
                    spheresegscript sss         = mRubiksCube[k, i, l].transform.Find("orientation").GetComponent <spheresegscript>();
                    int             ssid        = getSSID(k, i, l);
                    int             orientation = ssid < 5 ? 1 : 3;
                    sss.setSpheresegInfo(orientation, ssid);
                }
            }
        }
        mCommandQueue.Clear();
        mRotatingObjects.Clear();
        mAngleAcc = 0;
        mCurrAxis = Vector3.zero;
        mShuffleQueue.Clear();
    }
Beispiel #3
0
    void Awake()
    {
        mAngleAcc        = 0;
        mRotatingObjects = new List <GameObject>();
        mCurrAxis        = Vector3.zero;
        mCommandQueue    = new List <KeyValuePair <Axis, bool> >();
        mShuffleQueue    = new List <KeyValuePair <Axis, bool> >();
        mRng             = new System.Random();

        mRubiksCube  = new GameObject[2, 2, 2];
        mInitialCube = new GameObject[2, 2, 2];
        int counter = 0;

        for (uint k = 0; k < 2; ++k)
        {
            for (uint i = 0; i < 2; ++i)
            {
                for (uint l = 0; l < 2; ++l)
                {
                    mRubiksCube[k, i, l]  = (GameObject)Instantiate(quarters[counter++]);
                    mInitialCube[k, i, l] = mRubiksCube[k, i, l];
                    spheresegscript sss         = mRubiksCube[k, i, l].transform.Find("orientation").GetComponent <spheresegscript>();
                    int             ssid        = getSSID(k, i, l);
                    int             orientation = ssid < 5 ? 1 : 3;
                    sss.setSpheresegInfo(orientation, ssid);
                    sss.toggleText();
                }
            }
        }
    }
Beispiel #4
0
 public void toggleText()
 {
     for (uint k = 0; k < 2; ++k)
     {
         for (uint i = 0; i < 2; ++i)
         {
             for (uint l = 0; l < 2; ++l)
             {
                 spheresegscript sss = mRubiksCube[k, i, l].transform.Find("orientation").GetComponent <spheresegscript>();
                 sss.toggleText();
             }
         }
     }
 }