Example #1
0
    /// <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);
    }
Example #2
0
    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);
    }
Example #3
0
    /// <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);
    }
Example #4
0
    /// <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);
 }
Example #6
0
        /// <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);
        }
Example #7
0
 private IEnumerator AnimateMovement(AnimationPath animationPath)
 {
     while (true)
     {
         transform.position = animationPath.UpdatePosition();
         modelTransform.rotation = animationPath.UpdateRotation();
         if (animationPath.IsFinishedUpdating())
         {
             break;
         }
         yield return null;
     }
     isActing = false;
 }