public void Update(float dt) { CurrentTime += dt; float t = m_totalDuration > 0 ? CurrentTime / m_totalDuration : 0; t = t > 1 ? 1 : t < 0 ? 0 : t; t = AnimHelper.Ease(t, Ease); if (IsForward) { m_currOffset = m_startOffset - t * m_distance; } else { m_currOffset = m_startOffset + t * m_distance; } if (IsVertical) { Item.Element.RenderY = AnimHelper.Round(m_currOffset); } else { Item.Element.RenderX = AnimHelper.Round(m_currOffset); } }
public SlidingTransition( BadgeCaps device, MessageQueueItem item1, MessageQueueItem item2, SlidingDirection direction, Easing ease, float speed, float?padding) { Item1 = item1; Item2 = item2; Direction = direction; Ease = ease; Speed = speed; if (IsVertical) { Padding = padding.HasValue ? padding.Value : device.Height; m_startOffset = Item1.Element.RenderY; m_distance = AnimHelper.Round(Item1.Element.ClipHeight + m_startOffset + Padding); } else { Padding = padding.HasValue ? padding.Value : device.Width; m_startOffset = Item1.Element.RenderX; m_distance = AnimHelper.Round(Item1.Element.ClipWidth + m_startOffset + Padding); } m_currOffset = m_startOffset; m_totalDuration = m_distance / Speed; }
public void Update(float dt) { CurrentTime += dt; float t = m_totalDuration > 0 ? CurrentTime / m_totalDuration : 0; t = t > 1 ? 1 : t < 0 ? 0 : t; t = AnimHelper.Ease(t, Ease); m_currOffsetX = m_startOffsetX - t * DirectionX * m_distanceX; m_currOffsetY = m_startOffsetY - t * DirectionY * m_distanceY; Item.Element.RenderX = AnimHelper.Round(m_currOffsetX); Item.Element.RenderY = AnimHelper.Round(m_currOffsetY); }