Example #1
0
    bool IsOnCanvas(Touch2 touch)
    {
        var origin = _camera.ScreenToWorldPoint(touch.Position);
        var hit    = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.Canvas);

        return(hit.collider != null);
    }
Example #2
0
 void AppendMovementDelta(Touch2 touch)
 {
     if (touch.Phase == TouchPhase.Began)
     {
         return;
     }
     _totalMovement += Mathf.Abs(touch.DeltaPosition.magnitude);
 }
Example #3
0
        public static Vector2 GetNormalizedWorldCoordinates(Camera camera, Touch2 touch)
        {
            var yPos   = touch.Position.y / Screen.height;
            var xPos   = touch.Position.x / Screen.width;
            var newPos = camera.ViewportToWorldPoint(new Vector2(xPos, yPos));

            newPos.z = 0.0F;
            return(newPos);
        }
    private void MaybeMoveSelectedObject(Touch2 touch)
    {
        if (_selectedObject == null)
        {
            return;
        }

        _selectedObject.Move(_camera.ScreenToWorldPoint(touch.Position));
    }
Example #5
0
    private Vector3 CalculateInertia(Touch2 touch)
    {
        Vector2 delta = touch.DeltaPosition;

        float positionX = -delta.x * TouchSensitivity * Time.deltaTime;
        float positionY = 0; // -delta.y * TouchSensitivity * Time.deltaTime;

        return(new Vector3(positionX, positionY, 0));
    }
Example #6
0
    void TryStartGesture(Touch2 touch)
    {
        if (!IsOnCanvas(touch))
        {
            return;
        }

        _isDrawing     = true;
        _currentStroke = CreateStroke();
        _currentStroke.Add(Utilities.GetNormalizedWorldCoordinates(_camera, touch));
    }
    private void MaybeSelectObject(Touch2 touch)
    {
        if (_selectedObject != null)
        {
            return;
        }

        if (touch.Phase == TouchPhase.Began)
        {
            ResetLongPressTimer();
        }
        if (touch.Phase != TouchPhase.Stationary)
        {
            return;
        }

        if (Time.time - _longpressTime < _touchPhaseBeganTime)
        {
            return;
        }

        ResetLongPressTimer();

        var origin = _camera.ScreenToWorldPoint(touch.Position);

        var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.Ground);

        if (touch.Phase == TouchPhase.Began)
        {
            Debug.Log("_camera touch at " + origin);
        }

        Debug.DrawRay(origin, Vector3.forward * 10, Color.red, 10f);

        if (hit.collider == null)
        {
            return;
        }

        var selected = hit.collider.gameObject.GetComponent <SelectOnTouch>();

        if (selected == null)
        {
            return;
        }

        Debug.Log("Selecting object " + hit.collider.gameObject.name);

        selected.Select();
        _selectedObject = selected;
    }
Example #8
0
    void TryAddStroke(Touch2 touch)
    {
        if (!_isDrawing)
        {
            return;
        }

        if (!IsOnCanvas(touch))
        {
            return;
        }

        _currentStroke.Add(Utilities.GetNormalizedWorldCoordinates(_camera, touch));
    }
Example #9
0
        CuddleEvent TryHitRessi(Touch2 touch)
        {
            var origin = _camera.ScreenToWorldPoint(touch.Position);

            var hit = Physics2D.Raycast(origin, Vector2.zero, 10, Constants.Layers.TouchRessi);

            if (hit.collider == null)
            {
                return(null);
            }

            var animator = hit.collider.gameObject.GetComponentInParent <SpineRessiAnimator>();

            return(new CuddleEvent(animator, hit.collider.name, touch));
        }
Example #10
0
        private async void OnTapClick(object sender, RoutedEventArgs e)
        {
            // delay so we don't mix with the mouse click that got us here.
            await Task.Delay(TimeSpan.FromMilliseconds(200));

            try
            {
                Touch2.Down(100, 200);
                Touch2.Drag(300, 400);
                Touch2.Up();
                //Touch.Tap(100, 120);
            }
            catch (Exception exception)
            {
                this.Events.Items.Add($"Exception: {exception.Message}");
            }
        }
Example #11
0
    private void PanCamera(Touch2 touch)
    {
        switch (touch.Phase)
        {
        case TouchPhase.Began:
            StopInertia();
            break;

        case TouchPhase.Moved:
            MoveCamera(touch);
            break;

        case TouchPhase.Ended:
            StartInertia();
            break;
        }
    }
    private void MaybeDeselectObject(Touch2 touch)
    {
        if (_selectedObject == null)
        {
            return;
        }

        if (touch.Phase != TouchPhase.Ended)
        {
            return;
        }

        Debug.Log("Deselecting object");

        _selectedObject.Deselect();
        _selectedObject      = null;
        _touchPhaseBeganTime = float.MaxValue;
    }
Example #13
0
 public void CopyTo(DualShockState state)
 {
     state.ReportTimeStamp = ReportTimeStamp;
     state.LX                 = LX;
     state.LY                 = LY;
     state.RX                 = RX;
     state.RY                 = RY;
     state.L2                 = L2;
     state.R2                 = R2;
     state.Triangle           = Triangle;
     state.Circle             = Circle;
     state.Cross              = Cross;
     state.Square             = Square;
     state.DPad_Up            = DPad_Up;
     state.DPad_Down          = DPad_Down;
     state.DPad_Left          = DPad_Left;
     state.DPad_Right         = DPad_Right;
     state.L1                 = L1;
     state.R3                 = R3;
     state.Share              = Share;
     state.Options            = Options;
     state.R1                 = R1;
     state.L3                 = L3;
     state.PS                 = PS;
     state.Touch1             = Touch1.Clone();
     state.Touch2             = Touch2.Clone();
     state.TouchButton        = TouchButton;
     state.TouchPacketCounter = TouchPacketCounter;
     state.FrameCounter       = FrameCounter;
     state.Battery            = Battery;
     state.IsCharging         = IsCharging;
     state.AccelX             = AccelX;
     state.AccelY             = AccelY;
     state.AccelZ             = AccelZ;
     state.GyroX              = GyroX;
     state.GyroY              = GyroY;
     state.GyroZ              = GyroZ;
 }
Example #14
0
    private void TrackGesture(Touch2 touch)
    {
        if (touch.Phase == TouchPhase.Ended || touch.Phase == TouchPhase.Canceled)
        {
            if (_didTrackGesture)
            {
                ResetGesture();
                return;
            }

            SetIgnorableGesture();
            return;
        }

        if (touch.Phase != TouchPhase.Moved)
        {
            return;
        }

        var deltaY = touch.DeltaPosition.y;
        var deltaX = touch.DeltaPosition.x;

        if (Math.Abs(deltaY * _camera.aspect) <= Math.Abs(deltaX))
        // only care if gesture is dominantely in the y direction
        {
            SetIgnorableGesture();
            return;
        }

        var velocity = CalculateVelocity(deltaY);

        if (_position == Position.Up && velocity > 0)
        {
            SetIgnorableGesture();
            return;
        }

        if (_position == Position.Down && velocity < 0)
        {
            SetIgnorableGesture();
            return;
        }

        if (!AllowSwipeUp && _position == Position.Center && velocity > 0)
        {
            SetIgnorableGesture();
            return;
        }

        if (!AllowSwipeDown && _position == Position.Center && velocity < 0)
        {
            SetIgnorableGesture();
            return;
        }

        _totalVelocity  += velocity;
        _didTrackGesture = true;

        _camera.transform.Translate(0, velocity, 0);

        if (Math.Abs(_totalVelocity) > GestureVelocityTreshold)
        {
            StartProcessingGesture();
        }
    }
Example #15
0
File: Input2.cs Project: fengqk/Art
	public static Touch2 GetTouch(int index)
	{
		Touch2 touch2 = new Touch2();
		
		if (isWin8)
			touch2.win8Touch = Win8TouchInput.GetTouch(index);
		else
			touch2.touch = Input.GetTouch(index);
		
		return touch2;
	}
Example #16
0
 public CuddleEvent(SpineRessiAnimator ressi, string colliderName, Touch2 touch)
 {
     Ressi        = ressi;
     ColliderName = colliderName;
     Touch        = touch;
 }
Example #17
0
 private void MoveCamera(Touch2 touch)
 {
     _inertia = CalculateInertia(touch);
     _camera.transform.position += ClampDeltaMovement(_inertia);
 }