示例#1
0
    public int CheckMove(int objectName, MovementTYPE movType)
    {
        int index = objectPositions [objectName];

        switch (movType)
        {
        case MovementTYPE.RIGHT:
            if (index % 4 !=  3 && !walls[index - (index / 4)]) { return objectLabels[index + 1]; }
            break;

        case  MovementTYPE.LEFT:
            if (index % 4 !=  0 && !walls[index - (index / 4) - 1]) { return objectLabels[index - 1]; }
            break;

        case  MovementTYPE.DOWN:
            if (index < 12 && !walls[index + 12]) { return objectLabels[index + 4]; }
            break;

        case    MovementTYPE.UP:
            if (index > 3  && !walls[index +  8]) { return objectLabels[index - 4]; }
            break;
        }

        return 16;
    }
示例#2
0
    public void moveThem(GameObject firstGO,GameObject secondGO,MovementTYPE movementDirTmp,float movSpeedTmp)
    {
        speed = movSpeedTmp;
        first = firstGO.GetComponent<BoxCollider2D> ();
        second = secondGO.GetComponent<BoxCollider2D>();
        movementDir = movementDirTmp;
        moving = true;

        firstInitialPos = firstGO.transform.position;
        secondInitialPos = secondGO.transform.position;
    }
示例#3
0
    void Update()
    {
        if (Input.touchCount > 0)
        {
            switch ( Input.GetTouch(0).phase)
            {

            case TouchPhase.Began:

                //When a touch starts, better to use "end phase for single tap tough

                tapPosition = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);// Camera's relative position needed
                //Debug.Log ( " TAP HERE : " + tapPosition);
                //Debug.Log("Simple Tap");

                break;

            case TouchPhase.Canceled:

                // Canceled touch
                //Debug.Log ("Canceled");
                swipping = false;
                break;

            case TouchPhase.Ended:

                // End of single tap

                //Debug.Log ( "Ended");
                swipping = false;
                break;

            case TouchPhase.Moved:
                //	swipes
                if(swipping == false)
                {
                    tapDirection = tapPosition - Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);

                    if(tapDirection.x > 40)
                    {
                        //Debug.Log("Swipe Left");
                        moveTo = MovementTYPE.LEFT;
                        swipping = true;
                        swipeTo(tapPosition);
                    }
                    if(tapDirection.x < -40)
                    {
                        //Debug.Log("Swipe Right");
                        moveTo = MovementTYPE.RIGHT;
                        swipping = true;
                        swipeTo(tapPosition);
                    }
                    if(tapDirection.y > 40)
                    {
                        //Debug.Log("Swipe Down");
                        moveTo = MovementTYPE.DOWN;
                        swipping = true;
                        swipeTo(tapPosition);
                    }
                    if(tapDirection.y < -40)
                    {
                        //Debug.Log("Swipe Up");
                        moveTo = MovementTYPE.UP;
                        swipping = true;
                        swipeTo(tapPosition);
                    }

                }
                break;

            default:

                break;
            }

        }

        // Move Animation

        if (moving == true) {
            switch (movementDir) {

            case MovementTYPE.RIGHT:

                if (secondInitialPos.x > first.transform.position.x) {

                    first.transform.Translate (new Vector3 (1, 0, 0) * speed * Time.deltaTime);
                    second.transform.Translate (new Vector3 (-1, 0, 0) * speed * Time.deltaTime);

                } else {

                    if(moving == true )
                    {
                        setFinalPos();
                    }

                    moving = false;
                }
                break;

            case MovementTYPE.LEFT:

                if (secondInitialPos.x < first.transform.position.x) {

                    first.transform.Translate (new Vector3 (-1, 0, 0) * speed * Time.deltaTime);
                    second.transform.Translate (new Vector3 (1, 0, 0) * speed * Time.deltaTime);

                } else {

                    if(moving == true )
                    {
                        setFinalPos();
                    }
                    moving = false;
                }
                break;

            case MovementTYPE.DOWN:

                if (secondInitialPos.y < first.transform.position.y) {

                    first.transform.Translate (new Vector3 (0, -1, 0) * speed * Time.deltaTime);
                    second.transform.Translate (new Vector3 (0, 1, 0) * speed * Time.deltaTime);

                } else {

                    if(moving == true )
                    {
                        setFinalPos();
                    }

                    moving = false;

                }
                break;

            case MovementTYPE.UP:

                if (secondInitialPos.y > first.transform.position.y) {

                    first.transform.Translate (new Vector3 (0, 1, 0) * speed * Time.deltaTime);
                    second.transform.Translate (new Vector3 (0, -1, 0) * speed * Time.deltaTime);

                } else {

                    if(moving == true )
                    {
                        setFinalPos();
                    }

                    moving = false;
                }

                break;
            default:
                break;
            }
        }
    }
示例#4
0
    void Start()
    {
        moveTo = MovementTYPE.LEFT;
        BoxCollider2D Button0Box;

        Buttons = new GameObject[16];
        ButtonsCenter = new float[16];
        ButtonsLeft = new float[16];
        ButtonsRight = new float[16];
        ButtonsUp = new float[16];
        ButtonsDown = new float[16];

        findButtonsGameobject ();

        for (int i = 0; i < 16; i++)
        {

            Button0Box = Buttons[i].GetComponent<BoxCollider2D>();

        //			Debug.Log(Button0Box.transform.position.x);
        //			Debug.Log(Button0Box.size);
        //			Debug.Log (Button0Box.bounds.extents.x);

            ButtonsCenter[i] = Button0Box.bounds.center.x;
            ButtonsLeft[i] = ButtonsCenter [i] - (Button0Box.bounds.extents.x / 2);
            ButtonsRight [i] = ButtonsCenter [i] + (Button0Box.bounds.extents.x / 2);
            ButtonsCenter[i] = Button0Box.bounds.center.y;
            ButtonsDown[i] = ButtonsCenter [i] - (Button0Box.bounds.extents.y / 2);
            ButtonsUp [i] = ButtonsCenter [i] + (Button0Box.bounds.extents.y / 2);

        //			Debug.Log ("\n BUTTON  " + i);
        //			Debug.Log ("\n LEFT : " + ButtonsLeft [i]);
        //			Debug.Log ("\n Right : " + ButtonsRight [i]);
        //			Debug.Log ("\n Up : " + ButtonsUp [i]);
        //			Debug.Log ("\n Down : " + ButtonsDown [i]);
        //			Debug.Log ("\n Button Finished");

        }

        table = new BoardTable ();
        table.LoadLevel (1);
        setSpritesOfLevel ();
    }