예제 #1
0
 protected override void OnBegin(FingerGestures.IFingerList touches)
 {
     Position      = touches.GetAveragePosition();
     StartPosition = Position;
     direction     = FingerGestures.SwipeDirection.None;
     startTime     = Time.time;
 }
예제 #2
0
    /// <summary>
    /// 获取触摸移动方向的方法
    /// </summary>
    /// <param name="gesture"></param>
    public void OnSwipe(SwipeGesture gesture)

    {
        // 完整的滑动数据

        Vector2 move = gesture.Move;

        // 滑动的速度

        float velocity = gesture.Velocity;

        // 大概的滑动方向

        FingerGestures.SwipeDirection direction = gesture.Direction;



        if (direction.ToString() == "Left")
        {
            Audiomanagement.B_Click_Audio_Source("Turn_over_aBook");
            print(direction.ToString());
            autoFlip.FlipRightPage();
        }
        else
        {
            Audiomanagement.B_Click_Audio_Source("Turn_over_aBook");
            print(direction.ToString());

            autoFlip.FlipLeftPage();
        }
    }
예제 #3
0
 // spin the yellow cube when swipping it
 void FingerGestures_OnFingerSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
 {
     if (direction == FingerGestures.SwipeDirection.Up)
     {
         GameManager.instance.CurrentBlock.RotateBlock();
     }
 }
    public static Vector3 GetSwipeDirectionVector(FingerGestures.SwipeDirection direction)
    {
        switch (direction)
        {
        case FingerGestures.SwipeDirection.Up:
            return(Vector3.up);

        case FingerGestures.SwipeDirection.UpperRightDiagonal:
            return(0.5f * (Vector3.up + Vector3.right));

        case FingerGestures.SwipeDirection.Right:
            return(Vector3.right);

        case FingerGestures.SwipeDirection.LowerRightDiagonal:
            return(0.5f * (Vector3.down + Vector3.right));

        case FingerGestures.SwipeDirection.Down:
            return(Vector3.down);

        case FingerGestures.SwipeDirection.LowerLeftDiagonal:
            return(0.5f * (Vector3.down + Vector3.left));

        case FingerGestures.SwipeDirection.Left:
            return(Vector3.left);

        case FingerGestures.SwipeDirection.UpperLeftDiagonal:
            return(0.5f * (Vector3.up + Vector3.left));
        }

        Debug.LogError("Unhandled swipe direction: " + direction);
        return(Vector3.zero);
    }
    public void Emit(FingerGestures.SwipeDirection direction, float swipeVelocity)
    {
        Vector3 heading;

        // convert the swipe direction to a 3D vector we can use as our new forward direction for the particle emitter
        if (direction == FingerGestures.SwipeDirection.Up)
        {
            heading = Vector3.up;
        }
        else if (direction == FingerGestures.SwipeDirection.Down)
        {
            heading = Vector3.down;
        }
        else if (direction == FingerGestures.SwipeDirection.Right)
        {
            heading = Vector3.right;
        }
        else
        {
            heading = Vector3.left;
        }

        // orient our emitter towards the swipe direction
        emitter.transform.rotation = Quaternion.LookRotation(heading);

        Vector3 localEmitVelocity = emitter.localVelocity;

        localEmitVelocity.z   = baseSpeed * swipeVelocityScale * swipeVelocity;
        emitter.localVelocity = localEmitVelocity;

        // fire away!
        emitter.Emit();
    }
예제 #6
0
    //上下左右四方方向滑动手势操作
    void OnFingerSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        //结果是 Up Down Left Right 四个方向
        Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);
        if (BattleControllor.hero == null)
        {
            return;
        }

        switch (direction)
        {
        case FingerGestures.SwipeDirection.Down:
            BattleControllor.hero.direction = MoveDirection.DOWN;
            break;

        case FingerGestures.SwipeDirection.Up:
            BattleControllor.hero.direction = MoveDirection.UP;
            break;

        case FingerGestures.SwipeDirection.Right:
            BattleControllor.hero.direction = MoveDirection.RIGHT;
            break;

        case FingerGestures.SwipeDirection.Left:
            BattleControllor.hero.direction = MoveDirection.LEFT;
            break;
        }
    }
예제 #7
0
    protected override GestureState OnActive(FingerGestures.IFingerList touches)
    {
        if (touches.Count != RequiredFingerCount)
        {
            // fingers were lifted off
            if (touches.Count < RequiredFingerCount)
            {
                if (direction != FingerGestures.SwipeDirection.None)
                {
                    if (OnSwipe != null)
                    {
                        OnSwipe(this);
                    }

                    return(GestureState.Recognized);
                }
            }

            return(GestureState.Failed);
        }

        Position = touches.GetAveragePosition();
        Move     = Position - StartPosition;

        float distance = Move.magnitude;

        // didnt move far enough
        if (distance < MinDistance)
        {
            return(GestureState.InProgress);
        }

        float elapsedTime = Time.time - startTime;

        if (elapsedTime > 0)
        {
            velocity = distance / elapsedTime;
        }
        else
        {
            velocity = 0;
        }

        // we're going too slow
        if (velocity < MinVelocity)
        {
            return(GestureState.Failed);
        }

        FingerGestures.SwipeDirection newDirection = FingerGestures.GetSwipeDirection(Move.normalized, DirectionTolerance);

        // we went in a bad direction
        if (!IsValidDirection(newDirection) || (direction != FingerGestures.SwipeDirection.None && newDirection != direction))
        {
            return(GestureState.Failed);
        }

        direction = newDirection;
        return(GestureState.InProgress);
    }
예제 #8
0
    public bool RaiseSwipe(int fingerIndex, Vector2 fingerPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        if (velocity < minVelocity)
        {
            return(false);
        }

        if (!IsValid(direction))
        {
            return(false);
        }

        FingerIndex = fingerIndex;
        FingerPos   = fingerPos;
        Direction   = direction;
        Velocity    = velocity;

        if (OnSwipe != null)
        {
            OnSwipe(this);
        }

        Send(swipeMessage);
        Send(GetMessageForSwipeDirection(direction));

        return(true);
    }
예제 #9
0
 public void OnSwipe(Vector2 total, FingerGestures.SwipeDirection direction)
 {
     if (null == m_currentState)
     {
         return;
     }
     m_currentState.OnSwipe(total, direction);
 }
예제 #10
0
    void FingerGestures_OnFingerSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        TBSwipe swipeComp = PickComponent <TBSwipe>(startPos);

        if (swipeComp)
        {
            swipeComp.RaiseSwipe(fingerIndex, startPos, direction, velocity);
        }
    }
예제 #11
0
    /// <summary>
    /// Return true if the input direction is supported
    /// </summary>
    public bool IsValidDirection(FingerGestures.SwipeDirection dir)
    {
        if (dir == FingerGestures.SwipeDirection.None)
        {
            return(false);
        }

        return((ValidDirections & dir) == dir);
    }
예제 #12
0
파일: Inhale.cs 프로젝트: aliken9/MyZooPets
 void OnSwipe(SwipeGesture gesture)
 {
     FingerGestures.SwipeDirection direction = gesture.Direction;
     if (direction == FingerGestures.SwipeDirection.Left)
     {
         if (!isGestureRecognized)
         {
             GesturePassAction();
         }
     }
 }
예제 #13
0
 void OnSwipe(SwipeGesture gesture)
 {
     // Approximate swipe direction
     FingerGestures.SwipeDirection direction = gesture.Direction;
     if (direction == FingerGestures.SwipeDirection.Down)
     {
         foreach (MonoBehaviour currentScript in ListeningScripts)
         {
             currentScript.SendMessage("onSwipeDown", SendMessageOptions.DontRequireReceiver);
         }
     }
 }
예제 #14
0
    void Swipe_Gesture(SwipeGesture e)
    {
        Vector2 move     = e.Move;
        float   velocity = e.Velocity;

        FingerGestures.SwipeDirection direction = e.Direction;
        int angle = direction.ToString() == "Left" ? 45 : -45;
        MyGestureParameter mgp = new MyGestureParameter("swipe");

        mgp.angle = angle;
        pctrl.SetGesture(mgp);
    }
예제 #15
0
    void OnSwipe(SwipeGesture gesture)
    {
        FingerGestures.SwipeDirection direction = gesture.Direction;

        if (direction == FingerGestures.SwipeDirection.Left)
        {
            PanToMoveCamera scriptPan = CameraManager.Instance.PanScript;
            scriptPan.TutorialSwipeLeft();

            if (OnTutorialSwiped != null)
            {
                OnTutorialSwiped(this, EventArgs.Empty);
            }
        }
    }
예제 #16
0
파일: Exhale.cs 프로젝트: aliken9/MyZooPets
    void OnSwipe(SwipeGesture gesture){
       FingerGestures.SwipeDirection direction = gesture.Direction; 
       if(direction == FingerGestures.SwipeDirection.Right){
       		if(!isGestureRecognized){
				isGestureRecognized = true;

				//Disable hint when swipe gesture is registered. 
				GetComponent<HintController>().DisableHint(false);

				AudioManager.Instance.PlayClip("inhalerExhale");
				LgInhalerAnimationEventHandler.BreatheOutEndEvent += BreatheOutEndEventHandler;	
				petAnimator.SetTrigger("BreatheOut");
			}
       }
    }
예제 #17
0
    public override void OnSwipe(Vector2 total, FingerGestures.SwipeDirection direction)
    {
        if (!BattleArena.Singleton.m_roomIsRolling)
        {
            return;
        }
        if (IsGamePause())
        {
            return;
        }
        Vector3 rolePosToScreenPos = Camera.main.WorldToScreenPoint(mainPlayer.RealPos);
        Vector3 targetPosOnScreen  = new Vector3(total.x + rolePosToScreenPos.x, total.y + rolePosToScreenPos.y, rolePosToScreenPos.z);
        Vector3 targetRealPos      = Camera.main.ScreenToWorldPoint(targetPosOnScreen);

        mainPlayer.CurrentCmd = new MainPlayer.Cmd(targetRealPos, Player.ENCmdType.enRoll);
    }
예제 #18
0
    // spin the yellow cube when swipping it
    void FingerGestures_OnTwoFingerSwipe(Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        // make sure we started the swipe GestureMagon our swipe object
        GameObject selection = PickObject(startPos);

        if (selection == swipeObject)
        {
            UI.StatusText = "Swiped " + direction + " with two fingers";

            SwipeParticlesEmitter emitter = selection.GetComponentInChildren <SwipeParticlesEmitter>();
            if (emitter)
            {
                emitter.Emit(direction, velocity);
            }
        }
    }
예제 #19
0
    void OnDrag(DragGesture gesture)
    {
        if (!isPlaying)
        {
            return;
        }

        // update the ninja gesture cut trail
        UpdateTrail(gesture);

        // Figure out the direction of the trail
        Vector2 dir = gesture.TotalMove.normalized;         // you could also use Gesture.DeltaMove to get the movement change since last frame

        FingerGestures.SwipeDirection swipeDir = FingerGestures.GetSwipeDirection(dir);

        if (swipeDir != lastDirection &&
            swipeDir != FingerGestures.SwipeDirection.UpperLeftDiagonal &&
            swipeDir != FingerGestures.SwipeDirection.UpperRightDiagonal &&
            swipeDir != FingerGestures.SwipeDirection.LowerLeftDiagonal &&
            swipeDir != FingerGestures.SwipeDirection.LowerRightDiagonal)
        {
            AudioManager.Instance.PlayClip("ninjaWhoosh", variations: 3);
        }
        lastDirection = swipeDir;

        switch (gesture.Phase)
        {
        case ContinuousGesturePhase.Updated:
            GameObject go = gesture.Selection;
            if (go)
            {
                //Debug.Log("Touching " + go.name);
                NinjaTrigger trigger = go.GetComponent <NinjaTrigger>();

                // if the trigger is null, check the parent...a little hacky, but sue me!
                if (trigger == null)
                {
                    trigger = go.transform.parent.gameObject.GetComponent <NinjaTrigger>();
                }
                if (trigger)
                {
                    trigger.OnCut(gesture.Position);
                }
            }
            break;
        }
    }
예제 #20
0
 public override void OnSwipe(Vector2 total, FingerGestures.SwipeDirection direction)
 {
     if (IsGamePause())
     {
         return;
     }
     if (direction == FingerGestures.SwipeDirection.Left)
     {
         Debug.Log("向左");
         StageMenu.Singleton.ChangeTeam(false);
     }
     else if (direction == FingerGestures.SwipeDirection.Right)
     {
         Debug.Log("向右");
         StageMenu.Singleton.ChangeTeam(true);
     }
 }
예제 #21
0
 private void ReceivePressSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
 {
     if (startPos.y < Screen.height / 2f)
     {
         if (defendingMonController != null && direction == FingerGestures.SwipeDirection.Up)
         {
             defendingMonController.Shoot();
         }
     }
     else
     {
         if (attackingMonController != null && direction == FingerGestures.SwipeDirection.Down)
         {
             attackingMonController.Shoot();
         }
     }
 }
예제 #22
0
    private static Vector3 GetSwipeDirectionVector(FingerGestures.SwipeDirection direction)
    {
        Vector3 direct = Vector3.zero;

        switch (direction)
        {
        case FingerGestures.SwipeDirection.Up:
            direct = Vector3.up;
            break;

        case FingerGestures.SwipeDirection.UpperRightDiagonal:
            direct = 0.5f * (Vector3.up + Vector3.right);
            break;

        case FingerGestures.SwipeDirection.Right:
            direct = Vector3.right;
            break;

        case FingerGestures.SwipeDirection.LowerRightDiagonal:
            direct = 0.5f * (Vector3.down + Vector3.right);
            break;

        case FingerGestures.SwipeDirection.Down:
            direct = Vector3.down;
            break;

        case FingerGestures.SwipeDirection.LowerLeftDiagonal:
            direct = 0.5f * (Vector3.down + Vector3.left);
            break;

        case FingerGestures.SwipeDirection.Left:
            direct = Vector3.left;
            break;

        case FingerGestures.SwipeDirection.UpperLeftDiagonal:
            direct = 0.5f * (Vector3.up + Vector3.left);
            break;

        default:
            Debug.LogError("Unhandled swipe direction: " + direction);
            break;
        }

        return(direct);
    }
예제 #23
0
    /// <summary>
    /// Delegate for the OnFingernSwipe event
    /// </summary>
    /// <param name="fingerIndex">0-based index uniquely indentifying a specific finger</param>
    /// <param name="startPos">Initial position of the finger</param>
    /// <param name="direction">Direction of the swipe gesture</param>
    /// <param name="velocity">How quickly the finger has moved (in screen pixels per second)</param>
    public void OnFingerSwipeEvent(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        // If hit UIObject, return donn't need dispose 3DObject
        if (Globals.Instance.MGUIManager.MIsHitUIObject)
        {
            // foreach (IFingerEventListener listener in MUIObjectEventListenerList)
            // {
            //  if (!listener.IsFingerEventActive())
            //      continue;
            //
            //  if (listener.OnFingerTapEvent(fingerIndex, startPos, direction, velocity ))
            //  {
            //      break;
            //  }
            // }

            return;
        }
    }
예제 #24
0
    Message GetMessageForSwipeDirection(FingerGestures.SwipeDirection direction)
    {
        if (direction == FingerGestures.SwipeDirection.Left)
        {
            return(swipeLeftMessage);
        }

        if (direction == FingerGestures.SwipeDirection.Right)
        {
            return(swipeRightMessage);
        }

        if (direction == FingerGestures.SwipeDirection.Up)
        {
            return(swipeUpMessage);
        }

        return(swipeDownMessage);
    }
예제 #25
0
파일: Ctrl.cs 프로젝트: easondada/Prototype
    private void SwipeEventHandler(SwipeGesture gesture)
    {//此处根据手势处理游戏逻辑
        bool moveFlag = false;

        FingerGestures.SwipeDirection direction = gesture.Direction;
        switch (direction)
        {
        case FingerGestures.SwipeDirection.Up:
            if (modifier.MoveUp())
            {    //检查是否发生有效移动,有效移动才发送swipe消息
                moveFlag = true;
            }
            break;

        case FingerGestures.SwipeDirection.Down:
            if (modifier.MoveDown())
            {
                moveFlag = true;
            }
            break;

        case FingerGestures.SwipeDirection.Left:
            if (modifier.MoveLeft())
            {
                moveFlag = true;
            }
            break;

        case FingerGestures.SwipeDirection.Right:
            if (modifier.MoveRight())
            {
                moveFlag = true;
            }
            break;

        default: break;
        }
        if (moveFlag)
        {//发生移动
            _fsm.post("swipe");
        }
    }
예제 #26
0
    void OnSwipe(SwipeGesture gesture)
    {
        FingerGestures.SwipeDirection direction = gesture.Direction;
        if (direction == FingerGestures.SwipeDirection.Left ||
            direction == FingerGestures.SwipeDirection.LowerLeftDiagonal)
        {
            //If current step is the right sequence
            if (InhalerGameManager.Instance.IsCurrentStepCorrect(gameStepID))
            {
                if (!isGestureRecognized)
                {
                    isGestureRecognized = true;

                    //Lean tween cap
                    LeanTween.moveLocal(gameObject, targetPositionTween, 0.5f)
                    .setEase(LeanTweenType.easeOutQuad)
                    .setOnComplete(NextStep);
                }
            }
        }
    }
예제 #27
0
        //-------------------------------------------------------------------------
        public void OnFingerSwipe(FingerGestures.SwipeDirection direction, Vector2 finger_start_position, Vector2 finger_end_position)
        {
            if (!mActiveInput || onFingerTouchFish == null)
            {
                return;
            }

            mCurrentMousePosition = pixel2logicPos(finger_end_position);

            List <FishStillSprite> fish_list = new List <FishStillSprite>();
            float   gap                  = 5f;
            float   distance             = Vector2.Distance(finger_start_position, finger_end_position);
            int     index                = 0;
            int     max_index            = (int)(distance / gap) + 1;
            Vector2 unit_move_vector     = (finger_end_position - finger_start_position).normalized;
            List <FishStillSprite> fishs = null;

            do
            {
                fishs = getAllFishOnOnePoint(finger_start_position + unit_move_vector * gap * index);
                if (fishs != null)
                {
                    foreach (var it in fishs)
                    {
                        if (it != null && notInList(it, fish_list))
                        {
                            fish_list.Add(it);
                        }
                    }
                }
                index++;
            } while (index < max_index);

            if (fish_list.Count > 0)
            {
                onFingerTouchFish(fish_list);
            }
        }
예제 #28
0
    public bool IsValid(FingerGestures.SwipeDirection direction)
    {
        if (direction == FingerGestures.SwipeDirection.Left)
        {
            return(swipeLeft);
        }

        if (direction == FingerGestures.SwipeDirection.Right)
        {
            return(swipeRight);
        }

        if (direction == FingerGestures.SwipeDirection.Up)
        {
            return(swipeUp);
        }

        if (direction == FingerGestures.SwipeDirection.Down)
        {
            return(swipeDown);
        }

        return(false);
    }
예제 #29
0
 //上下左右四方方向滑动手势操作
 void OnFingerSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
 {
     //结果是 Up Down Left Right 四个方向
     Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);
 }
    protected override GestureState OnActive( FingerGestures.IFingerList touches )
    {
        if( touches.Count != RequiredFingerCount )
        {
            // fingers were lifted off
            if( touches.Count < RequiredFingerCount )
            {
                if( direction != FingerGestures.SwipeDirection.None )
                {
                    if( OnSwipe != null )
                        OnSwipe( this );

                    return GestureState.Recognized;
                }
            }

            return GestureState.Failed;
        }

        Position = touches.GetAveragePosition();
        Move = Position - StartPosition;

        float distance = Move.magnitude;

        // didnt move far enough
        if( distance < MinDistance )
            return GestureState.InProgress;

        if( ElapsedTime > 0 )
            velocity = distance / ElapsedTime;
        else
            velocity = 0;

        // we're going too slow
        if( velocity < MinVelocity )
            return GestureState.Failed;

        FingerGestures.SwipeDirection newDirection = FingerGestures.GetSwipeDirection( Move.normalized, DirectionTolerance );

        // we went in a bad direction
        if( !IsValidDirection( newDirection ) || ( direction != FingerGestures.SwipeDirection.None && newDirection != direction ) )
            return GestureState.Failed;

        direction = newDirection;
        return GestureState.InProgress;
    }
예제 #31
0
    // Controls the display of the main menu
    void FingerGestures_OnSwipe(int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity)
    {
        if (direction == FingerGestures.SwipeDirection.Up)
        {
            if (startPos.y < Screen.height * 0.25)
            {
                if (MenuShouldDisplayEvent != null)
                {
                    MenuShouldDisplayEvent();
                }
            }
        }

        if (direction == FingerGestures.SwipeDirection.Down)
        {
            if (startPos.y < Screen.height * 0.25)
            {
                if (MenuShouldHideEvent != null)
                {
                    MenuShouldHideEvent();
                }
            }
        }

        // Do this when DeviceOrientation.Portrait
        if (Input.deviceOrientation == DeviceOrientation.Portrait || Input.deviceOrientation == DeviceOrientation.Unknown)
        {
            if (direction == FingerGestures.SwipeDirection.Left)
            {
                // next & swipe left
            }
            else if (direction == FingerGestures.SwipeDirection.Right)
            {
                // previous & swipe right
            }
        }

        // Do this when DeviceOrientation.LandscapeLeft
        if (Input.deviceOrientation == DeviceOrientation.LandscapeLeft && startPos.y > Screen.height * 0.25)
        {
            if (direction == FingerGestures.SwipeDirection.Up)
            {
                // next & swipe left
            }
            else if (direction == FingerGestures.SwipeDirection.Down)
            {
                // previous & swipe right
            }
        }

        // Do this when DeviceOrientation.LandscapeRight
        if (Input.deviceOrientation == DeviceOrientation.LandscapeRight && startPos.y > Screen.height * 0.25)
        {
            if (direction == FingerGestures.SwipeDirection.Up)
            {
                // next & swipe right
            }
            else if (direction == FingerGestures.SwipeDirection.Down)
            {
                // previous & swipe left
            }
        }
    }
 protected override void OnBegin( FingerGestures.IFingerList touches )
 {
     Position = touches.GetAveragePosition();
     StartPosition = Position;
     direction = FingerGestures.SwipeDirection.None;
 }