private void touchProlongado(TouchClazz touchInz) { touchInz.setTouchCount(touchInz.getTouchCount() + 1); // estamos con el dedo pretado en la posicion inicial; if (touchInz.getTouchCount() > delaySlowTime && !gameController.isTimeSlowedDown) { gameController.SwapTimeScale(); touchInz.setMove(EnumTouch.timeTouch); touchInz.setTouchCount(0); } }
private void verticalMove(Touch touch, TouchClazz touchInz, Vector2 mouseMovement) { infoEnded.text = EnumTouch.verticalMove.ToString() + " " + playerController.CanJump; if (mouseMovement.y > 0) { // el movimiento es para arriba. if (playerController.CanClimb) { bool verticalDir = true; playerController.ClimbUpDown(verticalDir); /* * Este es el salto/ dejarse caer de la pared segun se esta mirando a la pared o no, tendre que hacerlo de otra manera * if (playerController.CanClimb) * { * playerController.WallJump(normalizedHorizontalSpeed); * } */ } else if (playerController.CanJump) { playerController.Jump(); removeTouch(touch.fingerId); } } else { if (playerController.CanClimb) { bool verticalDir = false; playerController.ClimbUpDown(verticalDir); } else { if (playerController.CanJumpAttack) { animator.SetBool("boolJumpAttack", true); playerController.MoveHorizontally(0); } else if (!playerController.CanClimb) { // el movimiento es para abajo. animator.SetTrigger("triggerDown"); } removeTouch(touch.fingerId); } } touchInz.setMove(EnumTouch.verticalMove); }
private void horizontalMove(TouchClazz touchInz, Vector2 mouseMovement) { normalizedHorizontalSpeed = (mouseMovement.x) > 0 ? 1 : -1; playerController.MoveHorizontally(normalizedHorizontalSpeed); touchInz.setMove(EnumTouch.horizontalMove); }
void HandleTouchScreen() { normalizedHorizontalSpeed = 0; infoTime.text = "isTimeSlow: " + gameController.isTimeSlowedDown; for (int i = 0; i < Input.touchCount; i++) { Touch touch = Input.GetTouch(i); // began if (touch.phase == TouchPhase.Began) { TouchClazz touchInz = new TouchClazz(touch.fingerId, EnumTouch.none, touch.position); PointerEventData pointer = new PointerEventData(EventSystem.current); pointer.position = touch.position; List <RaycastResult> raycastResults = new List <RaycastResult>(); EventSystem.current.RaycastAll(pointer, raycastResults); if (raycastResults.Count > 0) { GameObject result = raycastResults[0].gameObject; if (result == padMove.gameObject) { touchInz.setMove(EnumTouch.horizontalMove); } else if (result == padJump.gameObject) { if (playerController.CanJump) { touchInz.setMove(EnumTouch.verticalMove); playerController.Jump(); } } else if (result == padAtack.gameObject) { touchInz.setMove(EnumTouch.oneTouch); animator.SetTrigger("triggerFrontAttack"); } } touchIdTopressedPosition.Add(touch.fingerId, touchInz); touchIdTopressedPosition[touch.fingerId].setUiTouch(DrawCircle(touch.position)); } //middle if (touchIdTopressedPosition.ContainsKey(touch.fingerId)) { TouchClazz touchInz = touchIdTopressedPosition[touch.fingerId]; Vector2 mouseMovement = touch.position - touchInz.getPosition(); DrawTouchLine(touch.fingerId, touch.position); if (!gameController.isTimeSlowedDown) { if (touchInz.isValid(EnumTouch.dashTouch)) { touchInz.setMove(EnumTouch.dashTouch); } if (touchInz.isValid(EnumTouch.horizontalMove)) { if (Mathf.Abs(mouseMovement.y) < Mathf.Abs(mouseMovement.x) && Mathf.Abs(mouseMovement.x) > offsetTouch) { // entra aqui si es un movimiento en x horizontalMove(touchInz, mouseMovement); } else if (Mathf.Abs(mouseMovement.y) < Mathf.Abs(mouseMovement.x) && Mathf.Abs(mouseMovement.x) < offsetTouch) { // entra aqui si es un movimiento en x playerController.MoveHorizontally(0); } } else if (Mathf.Abs(mouseMovement.y) > Mathf.Abs(mouseMovement.x) && Mathf.Abs(mouseMovement.y) > offsetTouch && touchInz.isValid(EnumTouch.verticalMove)) { //entra aqui si el movimiento es en y verticalMove(touch, touchInz, mouseMovement); } else if (Mathf.Abs(mouseMovement.y) < offsetTouch && Mathf.Abs(mouseMovement.x) < offsetTouch && touchInz.isValid(EnumTouch.none)) { touchProlongado(touchInz); } } else { // estamos en slowIime if (touchInz.isValid(EnumTouch.dashTouch)) { infoEnded.text = "setea" + EnumTouch.dashTouch; touchInz.setMove(EnumTouch.dashTouch); } } if (touch.phase == TouchPhase.Ended) { infoEnded.text = touchInz.getMove().ToString(); if (touchInz.getMove().Equals(EnumTouch.dashTouch)) { touchDash(touch, touchInz); } /* * else if (Mathf.Abs(mouseMovement.y) < offsetTouch && Mathf.Abs(mouseMovement.x) < offsetTouch && * !touchInz.getMove().Equals(EnumTouch.timeTouch)) * { * animator.SetTrigger("triggerFrontAttack"); * } */ else if (touchInz.getMove().Equals(EnumTouch.timeTouch) && gameController.isTimeSlowedDown) { gameController.SwapTimeScale(); } else if (touchInz.getMove().Equals(EnumTouch.horizontalMove)) { playerController.MoveHorizontally(0); } removeTouch(touch.fingerId); } } } if (Input.touchCount <= 0) { playerController.MoveHorizontally(0); } if (!playerController.CanJumpAttack) { animator.SetBool("boolJumpAttack", false); } }