private IEnumerator _AnimateSelectedCard(bool leftSelected) { CardFrame showCard = leftSelected ? leftCard : rightCard; CardFrame hideCard = leftSelected ? rightCard : leftCard; Vector2 hideStartPosition = hideCard.rectT.anchoredPosition; Vector2 hideEndPosition = new Vector2(hideCard.rectT.anchoredPosition.x, CARD_OFF_SCREEN_Y); Vector2 showStartPosition = showCard.rectT.anchoredPosition; Vector2 showEndPosition = new Vector2(755, -50); Vector3 showStartScale = Vector3.one; Vector3 showEndScale = new Vector3(0.666f, 0.666f, 0.666f); float progress = 0; float elapsedTime = 0; while (progress <= 1) { progress = elapsedTime / CARD_MOVE_TIME; elapsedTime += Time.unscaledDeltaTime; float easedProgressHide = Easing.easeInSine(0, 1, progress); float easedProgressShow = Easing.easeInOutSine(0, 1, progress); hideCard.rectT.anchoredPosition = Vector2.Lerp(hideStartPosition, hideEndPosition, easedProgressHide); showCard.rectT.anchoredPosition = Vector2.Lerp(showStartPosition, showEndPosition, easedProgressShow); showCard.rectT.localScale = Vector3.Lerp(showStartScale, showEndScale, easedProgressShow); yield return(null); } hideCard.rectT.anchoredPosition = hideEndPosition; showCard.rectT.anchoredPosition = showEndPosition; showCard.rectT.localScale = showEndScale; }
public ConnectedAnimationPage() { this.InitializeComponent(); ContentFrame.Navigate(typeof(SamplePage1)); CollectionContentFrame.Navigate(typeof(ConnectedAnimationPages.CollectionPage)); CardFrame.Navigate(typeof(ConnectedAnimationPages.CardPage)); }
private async Task TranslateCardFrame() { if (CardFrame.TranslationY < 100) { await CardFrame.TranslateTo(0, 0, 250); } else { await CardFrame.TranslateTo(0, 350, 250); } }
private async void PanUpdated(object sender, PanUpdatedEventArgs e) { switch (e.StatusType) { case GestureStatus.Running: await CardFrame.TranslateTo(0, e.TotalY, 100); break; case GestureStatus.Completed: await TranslateCardFrame(); break; case GestureStatus.Canceled: await TranslateCardFrame(); break; } }
private async void HandleTouchEnd() { if (CardFrame.TranslationX > animationSlideRange) { OnSwipeRight(); return; } else if (CardFrame.TranslationX < -(animationSlideRange)) { OnSwipeLeft(); return; } await CardFrame.TranslateTo(0, 0, animLength, Easing.SpringOut); BackGrid.Opacity = 0; cardDistance = (float)X; sliding = false; }
public AnimationsPage() { this.InitializeComponent(); CardFrame.Navigate(typeof(AnimationsCardPage)); }