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; }
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; }
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; } } }
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 (); }