예제 #1
0
        /// <summary>
        /// 淡出并移除立绘
        /// </summary>
        /// <param name="depth">图像层数</param>
        /// <param name="time">淡出时间</param>
        public static Queue <ImageEffect> RemoveCharacterSprite(int depth, float time)
        {
            AnimationBuilder builder = new AnimationBuilder();

            return(builder.BeginWith(EffectBuilder.FadeOutByDepth(depth, time))
                   .Then(EffectBuilder.DeleteSpriteByDepth(depth))
                   .Get());
        }
예제 #2
0
        /// <summary>
        /// 改变原有立绘(淡出淡入)
        /// </summary>
        /// <param name="depth">图像层数</param>
        /// <param name="sprite">图像名</param>
        /// <param name="fadeout">原图淡出时间</param>
        /// <param name="fadein">淡入时间</param>
        public static Queue <ImageEffect> ChangeCharacterSprite(int depth, Sprite sprite, float fadeout, float fadein)
        {
            AnimationBuilder builder = new AnimationBuilder();

            if (fadeout == 0)
            {
                builder.BeginWith(EffectBuilder.ChangeByDepth(depth, sprite));
            }
            else
            {
                builder.BeginWith(EffectBuilder.FadeOutByDepth(depth, fadeout))
                .Then(EffectBuilder.SetSpriteByDepth(depth, sprite));
            }
            if (fadein != 0)
            {
                return(builder.Then(EffectBuilder.FadeInByDepth(depth, fadein)).Get());
            }
            return(builder.Get());
        }
예제 #3
0
        /// <summary>
        /// 淡出所有立绘
        /// </summary>
        /// <param name="time">淡出时间</param>
        //public static Queue<ImageEffect> FadeOutAllChara(float time)
        //{
        //    AnimationBuilder builder = new AnimationBuilder();
        //    List<int> charanums = EffectBuilder.GetDepthNum();
        //    Queue<ImageEffect> animation = new Queue<ImageEffect>();
        //    animation.Enqueue(EffectBuilder.BlockClick(false));
        //    foreach (int x in charanums)
        //    {
        //        animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time));
        //    }
        //    return animation;
        //}

        ///// <summary>
        ///// 移除所有立绘
        ///// </summary>
        //public static Queue<ImageEffect> RemoveAllChara()
        //{
        //    AnimationBuilder builder = new AnimationBuilder();
        //    List<int> charanums = EffectBuilder.GetDepthNum();
        //    Queue<ImageEffect> animation = new Queue<ImageEffect>();
        //    animation.Enqueue(EffectBuilder.BlockClick(false));
        //    foreach (int x in charanums)
        //    {
        //        animation.Enqueue(EffectBuilder.DeleteSpriteByDepth(x));
        //    }
        //    animation.Enqueue(EffectBuilder.BlockClick(true));
        //    return animation;
        //}

        ///// <summary>
        ///// 淡出所有图片(包括背景)
        ///// </summary>
        ///// <param name="time">淡出时间</param>
        //public static Queue<ImageEffect> FadeOutAllPic(float time)
        //{
        //    AnimationBuilder builder = new AnimationBuilder();
        //    List<int> charanums = EffectBuilder.GetDepthNum();
        //    Queue<ImageEffect> animation = new Queue<ImageEffect>();
        //    animation.Enqueue(EffectBuilder.BlockClick(false));
        //    foreach (int x in charanums)
        //    {
        //        animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time));
        //    }
        //    animation.Enqueue(EffectBuilder.FadeOut(EffectBuilder.backgroundSprite, time));
        //    return animation;
        //}
        #endregion

        #region 新增同步特效 所有图片
        /// <summary>
        /// 淡出所有
        /// </summary>
        /// <param name="back">是否包含背景</param>
        /// <param name="dialog">是否包含对话框</param>
        /// <param name="time">淡出时间</param>
        public static Queue <ImageEffect> FadeOutAll(bool back, bool dialog, float time)
        {
            List <int>          charanums = EffectBuilder.GetDepthNum();
            Queue <ImageEffect> animation = new Queue <ImageEffect>();

            animation.Enqueue(EffectBuilder.BlockClick(false));
            if (dialog)
            {
                animation.Enqueue(EffectBuilder.FadeOutDialog(time));
            }
            foreach (int x in charanums)
            {
                animation.Enqueue(EffectBuilder.FadeOutByDepth(x, time));
            }
            if (back)
            {
                animation.Enqueue(EffectBuilder.FadeOut(EffectBuilder.backgroundSprite, time));
            }
            return(animation);
        }