/// <summary> /// 初始化飞牌动画组件 /// </summary> /// <param name="cardTrans"></param> /// <param name="index"></param> /// <param name="offsetTime"></param> void InitCardFlyAnimationPath(Transform cardTrans, int index, float offsetTime) { float startTime = offsetTime + flyCardTime * index; AnimationPath flyAniPath = new AnimationPath(); flyAniPath.HandleTransform = cardTrans; flyAniPath.PathName = "fly_animation_" + index; Vector3 startScale = Vector3.one * 0.4f; Vector3 startPoint = new Vector3(0, -30 - index * SpaceY * 0.4f, 0); Vector3 endScale = Vector3.one * 1.2f; Vector3 endPoint = new Vector3(0, -400 + index * SpaceY, 0); flyAniPath.Frames.Add(new AnimationFrame() { Time = 0, Active = false, localScale = startScale, localPosition = startPoint }); flyAniPath.Frames.Add(new AnimationFrame() { Time = startTime, Active = true, localScale = startScale, localPosition = startPoint }); flyAniPath.Frames.Add(new AnimationFrame() { Time = startTime + flyCardTime, Active = true, localScale = endScale, localPosition = endPoint }); this.m_AnimationControl.AnimationPaths.Add(flyAniPath); }
void InitOneLeftAnimationPath(Transform leftRoot, int index, float disappearOffsetTime = 1f) { float startTime = m_CardInterval * index * 2; AnimationPath leftShangPath = new AnimationPath(); leftShangPath.PathName = "left_shang_" + index; leftShangPath.HandleTransform = leftRoot.Find("Item_shang"); leftShangPath.Frames.Add(new AnimationFrame(leftShangPath.HandleTransform) { Time = 0, Active = true }); leftShangPath.Frames.Add(new AnimationFrame(leftShangPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(leftShangPath); AnimationPath leftZhongPath = new AnimationPath(); leftZhongPath.PathName = "left_zhong_" + index; leftZhongPath.HandleTransform = leftRoot.Find("Item_zhong"); leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = 0, Active = false }); // 上消失,中出现 leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = true }); leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(leftZhongPath); AnimationPath leftXiaPath = new AnimationPath(); leftXiaPath.PathName = "left_xia_" + index; leftXiaPath.HandleTransform = leftRoot.Find("Item_xia"); leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = 0, Active = false }); // 中消失,下出现 leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = true }); // 合牌 动画 leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = disappearOffsetTime, Active = true }); leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { localPosition = leftXiaPath.HandleTransform.localPosition + new Vector3(90, 0, 0), Time = disappearOffsetTime + 0.3f, Active = true }); this.m_AnimationControl.AnimationPaths.Add(leftXiaPath); }
/// <summary> /// 初始化Left动画组件 /// </summary> /// <param name="leftRoot"></param> /// <param name="index"></param> /// <param name="disappearOffsetTime"></param> void InitOneLeftAnimationPath(Transform leftRoot, int index, float disappearOffsetTime = 1f) { float startTime = m_CardInterval * index * 2; AnimationPath leftShangPath = new AnimationPath(); leftShangPath.PathName = "left_shang_" + index; leftShangPath.HandleTransform = leftRoot.Find("Item_shang"); leftShangPath.Frames.Add(new AnimationFrame(leftShangPath.HandleTransform) { Time = 0, Active = true }); leftShangPath.Frames.Add(new AnimationFrame(leftShangPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(leftShangPath); AnimationPath leftZhongPath = new AnimationPath(); leftZhongPath.PathName = "left_zhong_" + index; leftZhongPath.HandleTransform = leftRoot.Find("Item_zhong"); leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = 0, Active = false }); // 上消失,中出现 leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = true }); leftZhongPath.Frames.Add(new AnimationFrame(leftZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(leftZhongPath); AnimationPath leftXiaPath = new AnimationPath(); leftXiaPath.PathName = "left_xia_" + index; leftXiaPath.HandleTransform = leftRoot.Find("Item_xia"); leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = 0, Active = false }); // 中消失,下出现 leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = true }); // 下消失,飞牌开始 leftXiaPath.Frames.Add(new AnimationFrame(leftXiaPath.HandleTransform) { Time = disappearOffsetTime + flyCardTime * (CardMax - index) * 2, Active = false }); this.m_AnimationControl.AnimationPaths.Add(leftXiaPath); }
/// <summary> /// 初始化Right动画组件 /// </summary> /// <param name="rightRoot"></param> /// <param name="index"></param> /// <param name="disappearOffsetTime"></param> void InitRightAnimationPath(Transform rightRoot, int index, float disappearOffsetTime = 1f) { float startTime = m_CardInterval * (index * 2 + 1); AnimationPath rightShangPath = new AnimationPath(); rightShangPath.PathName = "right_shang_" + index; rightShangPath.HandleTransform = rightRoot.Find("Item_shang"); rightShangPath.Frames.Add(new AnimationFrame(rightShangPath.HandleTransform) { Time = 0, Active = true }); rightShangPath.Frames.Add(new AnimationFrame(rightShangPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(rightShangPath); AnimationPath rightZhongPath = new AnimationPath(); rightZhongPath.PathName = "right_zhong_" + index; rightZhongPath.HandleTransform = rightRoot.Find("Item_zhong"); rightZhongPath.Frames.Add(new AnimationFrame(rightZhongPath.HandleTransform) { Time = 0, Active = false }); // 上消失,中出现 rightZhongPath.Frames.Add(new AnimationFrame(rightZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime, Active = true }); rightZhongPath.Frames.Add(new AnimationFrame(rightZhongPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = false }); this.m_AnimationControl.AnimationPaths.Add(rightZhongPath); AnimationPath rightXiaPath = new AnimationPath(); rightXiaPath.PathName = "right_xia_" + index; rightXiaPath.HandleTransform = rightRoot.Find("Item_xia"); rightXiaPath.Frames.Add(new AnimationFrame(rightXiaPath.HandleTransform) { Time = 0, Active = false }); // 中消失,下出现 rightXiaPath.Frames.Add(new AnimationFrame(rightXiaPath.HandleTransform) { Time = startTime + shangDisPlayTime + zhongDisplayTime, Active = true }); // 下消失,飞牌开始 rightXiaPath.Frames.Add(new AnimationFrame(rightXiaPath.HandleTransform) { Time = disappearOffsetTime + flyCardTime * ((CardMax - index) * 2 - 1), Active = false }); this.m_AnimationControl.AnimationPaths.Add(rightXiaPath); }
private void Change_Middle_Title(object sender, ExecutedRoutedEventArgs e) { middle_title.Text = ((SideMenuItem)e.Parameter).Header.ToString(); ((SideMenuItem)e.Parameter).Foreground = new SolidColorBrush(Color.FromRgb(251, 114, 153)); ((AnimationPath)((SideMenuItem)e.Parameter).Icon).Stroke = new SolidColorBrush(Color.FromRgb(251, 114, 153)); ((AnimationPath)((SideMenuItem)e.Parameter).Icon).IsPlaying = true; if (!string.Equals(Last_sideMenuItem.Header.ToString(), ((SideMenuItem)e.Parameter).Header.ToString())) { Last_sideMenuItem.Foreground = new SolidColorBrush(Color.FromRgb(0, 0, 0)); Last_sideMenuItem.FontSize = 14; Last_animationPath.IsPlaying = false; Last_animationPath.Stroke = new SolidColorBrush(Color.FromRgb(0, 0, 0)); } Last_sideMenuItem = (SideMenuItem)e.Parameter; Last_animationPath = ((AnimationPath)((SideMenuItem)e.Parameter).Icon); }
/// <summary> /// 判断到左右点设备都是On /// 就添加动画 /// 已经添加过则不会再重复添加 /// </summary> protected void AddAnimation() { if (startDrawObject == null || endDrawObject == null || !startDrawObject.IsOn || !endDrawObject.IsOn) { return; } if (animationList.Count > 0) { return; } //TODO 添加动画对象到animationList中 PointF[] points = new PointF[_pointArray.Count]; var point = _pointArray[0].P; for (int i = 0; i < _pointArray.Count; i++) { if (_pointArray[i].Pc == 'M') { point = _pointArray[i].P; } var pi = _pointArray[i].P; points[i] = new PointF(pi.X - point.X, pi.Y - point.Y); } PointF[] worldpoints = new PointF[_pointArray.Count]; for (int i = 0; i < _pointArray.Count; i++) { var pi = new PointF(_pointArray[i].P.X - 5, _pointArray[i].P.Y - 5); worldpoints[i] = pi; } AnimationPath path = new AnimationPath(points, worldpoints) { TimingAttr = { Dur = "10" } }; DrawCircleObject circle = new DrawCircleObject(-point.X, -point.Y, 10, 10) { }; circle.AnimationBases.Add(path); animationList.Add(circle); }
private IEnumerator AnimateMovement(AnimationPath animationPath) { while (true) { transform.position = animationPath.UpdatePosition(); modelTransform.rotation = animationPath.UpdateRotation(); if (animationPath.IsFinishedUpdating()) { break; } yield return null; } isActing = false; }