private static void SwipeScript_OnSwiped(SwipeParameter swipeParameter) { if (selectedPawn != null && OnPawnSwiped != null) { OnPawnSwiped(selectedPawn, swipeParameter); Clear(); } }
protected virtual void InitializeSwipeParamaters() { SwipeParamater = new SwipeParameter(); var corners = new Vector3[4]; swipeBounds.GetWorldCorners(corners); SwipeParamater.StartPositionRange = new Rect(corners[0], corners[2] - corners[0]); NextFrame.Function(UpdateSwipeParameters); SwipeParamater.AngleRanges.Add(new AngleRange(-30, 30)); SwipeParamater.AngleRanges.Add(new AngleRange(150, 210)); SwipeParamater.OnSwipeStart += SwipeStart; SwipeParamater.OnSwipeUpdate += SwipeUpdate; SwipeParamater.OnSwipeEnd += SwipeEnd; }
private void PawnScript_OnPawnSwiped(Transform selectedPawn, SwipeParameter swipeParameter) { SwapIfNec(selectedPawn, swipeParameter); }
private void SwapIfNec(Transform selectedPawn, SwipeParameter swipeParameter) { var swipeDirection = swipeParameter.direction; if (!_swipeEnabled || !(selectedPawn != null && swipeDirection != SwipeDirection.None)) { return; } var pawnScript = selectedPawn.gameObject.GetComponent <PawnScript>(); var pawnX = pawnScript.pointX; var pawnY = pawnScript.pointY; Transform nearPawn = null; Transform near2Pawn = null; int near2PawnX = 0; int near2PawnY = 0; if (swipeDirection == SwipeDirection.Left) { if (pawnX - 2 < 0) { PunchPawn(selectedPawn); return; } nearPawn = _board[pawnX - 1, pawnY]; near2Pawn = _board[near2PawnX = pawnX - 2, near2PawnY = pawnY]; } else if (swipeDirection == SwipeDirection.Right) { if (pawnX + 2 >= BoardSize) { PunchPawn(selectedPawn); return; } nearPawn = _board[pawnX + 1, pawnY]; near2Pawn = _board[near2PawnX = pawnX + 2, near2PawnY = pawnY]; } else if (swipeDirection == SwipeDirection.Up) { if (pawnY + 2 >= BoardSize) { PunchPawn(selectedPawn); return; } nearPawn = _board[pawnX, pawnY + 1]; near2Pawn = _board[near2PawnX = pawnX, near2PawnY = pawnY + 2]; } else if (swipeDirection == SwipeDirection.Down) { if (pawnY - 2 < 0) { PunchPawn(selectedPawn); return; } nearPawn = _board[pawnX, pawnY - 1]; near2Pawn = _board[near2PawnX = pawnX, near2PawnY = pawnY - 2]; } if (nearPawn != null && near2Pawn == null) { MoveAndDestroyPawn(selectedPawn, nearPawn, near2PawnX, near2PawnY); } else { PunchPawn(selectedPawn); } }
public void Clear() { swipeParameter = new SwipeParameter(); }