Example #1
0
 public LongStoryPage(LHStartPage parent)
 {
     InitializeComponent();
     this.parent = parent;
     this.Image_StoryBook_Decorate.Source  = resMana.GetPicture("Bonus_Mask.png", ResourceManager.FullImageRect).SpriteBitmapImage;
     this.Image_StoryBook_Decorate.Opacity = 0;
     DialogueSprite = new YuriSprite()
     {
         DisplayBinding   = this.StackPanel_DialogList,
         AnimationElement = this.StackPanel_DialogList,
         Descriptor       = new SpriteDescriptor()
     };
     DecorateSprite = new YuriSprite()
     {
         DisplayBinding   = this.Image_StoryBook_Decorate,
         AnimationElement = this.Image_StoryBook_Decorate,
         Descriptor       = new SpriteDescriptor()
     };
     BgTransitorSprite = new YuriSprite()
     {
         DisplayBinding   = this.Image_StoryBook_BgTransitor,
         AnimationElement = this.Image_StoryBook_BgTransitor,
         Descriptor       = new SpriteDescriptor()
     };
     //MainFrameSprite = new YuriSprite()
     //{
     //    DisplayBinding = ViewManager.mWnd.mainFrame,
     //    AnimationElement = ViewManager.mWnd.mainFrame,
     //    Descriptor = new SpriteDescriptor()
     //};
     this.RefreshCharacterColorDict();
     // 初始化回调标志位
     Director.RunMana.Symbols.GlobalCtxDao.GlobalSymbolTable.Assign("tracing_callback", String.Empty);
     Director.RunMana.Symbols.GlobalCtxDao.GlobalSymbolTable.Assign("tracing_idx", 0);
 }
Example #2
0
        private void Art_Image_Preview_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var image    = sender as Image;
            var row      = Grid.GetRow(image) == 2 ? 1 : 0;
            var col      = Grid.GetColumn(image);
            var isOpened = this.OpenVect[row, col];

            if (isOpened)
            {
                viewSprite = rm.GetPicture("CG_" + (row * 4 + col + 1) + ".png", ResourceManager.FullImageRect);
                SpriteDescriptor desc = new SpriteDescriptor()
                {
                    ResourceType = ResourceType.Pictures
                };
                viewSprite.Descriptor         = desc;
                this.Art_Image_Viewbox.Margin = new Thickness(0, 0, 0, 0);
                this.RollCounter = 0;
                this.Art_Image_Viewbox.Source     = viewSprite.SpriteBitmapImage;
                this.Art_Image_Viewbox.Visibility = Visibility.Visible;
                this.Art_Image_Viewbox.Opacity    = 0;
                desc.ToOpacity            = 1;
                viewSprite.DisplayBinding = viewSprite.AnimationElement = this.Art_Image_Viewbox;
                SpriteAnimation.OpacityToAnimation(viewSprite, TimeSpan.FromMilliseconds(500), 1);
                if (GlobalConfigContext.GAME_PERFORMANCE_TYPE == GlobalConfigContext.PerformanceType.HighQuality)
                {
                    SpriteAnimation.BlurMutexAnimation(canvasSprite, TimeSpan.FromMilliseconds(800), 0, 50);
                }
                this.Art_Grid_Controls.IsHitTestVisible = false;
            }
        }
Example #3
0
        public LHSettingsPage(ILoadablePage parent)
        {
            InitializeComponent();
            this.parent          = parent;
            this.currentTabImage = this.TabImage_Graphic;

            this.GrahpicTabSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_Tab_Graphic,
                AnimationElement = this.Grid_Tab_Graphic,
                Descriptor       = new SpriteDescriptor()
            };
            this.VoiceTabSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_Tab_Voice,
                AnimationElement = this.Grid_Tab_Voice,
                Descriptor       = new SpriteDescriptor()
            };
            this.KeyboardTabSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_Tab_Keyboard,
                AnimationElement = this.Grid_Tab_Keyboard,
                Descriptor       = new SpriteDescriptor()
            };
            this.OthersTabSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_Tab_Others,
                AnimationElement = this.Grid_Tab_Others,
                Descriptor       = new SpriteDescriptor()
            };
        }
Example #4
0
        /// <summary>
        /// 获取存档屏幕截图的精灵
        /// </summary>
        /// <param name="sourceName">文件路径</param>
        /// <returns>精灵实例</returns>
        public YuriSprite GetSaveSnapshot(string sourceName)
        {
            YuriSprite sprite = new YuriSprite();

            if (File.Exists(IOUtils.ParseURItoURL(sourceName)))
            {
                Uri bg = new Uri(IOUtils.ParseURItoURL(sourceName), UriKind.RelativeOrAbsolute);
                sprite.Init(sourceName, ResourceType.SaveSnapshot, bg);
            }
            else
            {
                MessageBox.Show("[错误] 资源文件不存在:" + sourceName);
                Director.GetInstance().GetMainRender().Shutdown();
            }
            return(sprite);
        }
Example #5
0
 public LHSaveLoadPage(ILoadablePage parent)
 {
     InitializeComponent();
     this.parent         = parent;
     this.SaveSlotSprite = new YuriSprite()
     {
         DisplayBinding   = this.CanvasGroup_SaveSlots,
         AnimationElement = this.CanvasGroup_SaveSlots,
         Descriptor       = new SpriteDescriptor()
     };
     for (int i = 0; i < GlobalConfigContext.GAME_SAVE_MAX; i++)
     {
         this.saveList.Add(null);
         this.saveDescList.Add(null);
         this.slotContentList.Add(null);
     }
 }
 private void Blur_OnClick(object sender, RoutedEventArgs e)
 {
     if (blurCount == -1)
     {
         Blursd = new SpriteDescriptor()
         {
             ResourceType = ResourceType.Pictures
         };
         var rm = ResourceManager.GetInstance();
         Blurbgg = rm.GetPicture("UUZ.jpg", ResourceManager.FullImageRect);
         Image img3 = new Image();
         img3.Source              = Blurbgg.SpriteBitmapImage;
         img3.Width               = Blurbgg.SpriteBitmapImage.PixelWidth;
         img3.Height              = Blurbgg.SpriteBitmapImage.PixelHeight;
         Blurbgg.DisplayBinding   = img3;
         Blurbgg.AnimationElement = img3;
         Blurbgg.Descriptor       = Blursd;
         Canvas.SetLeft(img3, 0);
         Canvas.SetTop(img3, 0);
         Canvas.SetZIndex(img3, 5);
         this.BO_Bg_Canvas.Children.Add(img3);
         Blurbgg.InitAnimationRenderTransform();
         Blursd.BlurRadius   = 0;
         Blursd.ToBlurRadius = 20;
     }
     else if (blurCount % 2 == 0)
     {
         Blursd.ToBlurRadius = 50;
         SpriteAnimation.BlurMutexAnimation(Blurbgg, TimeSpan.FromMilliseconds(1000), Blursd.BlurRadius, Blursd.ToBlurRadius);
     }
     else
     {
         Blursd.ToBlurRadius = 0;
         SpriteAnimation.BlurMutexAnimation(Blurbgg, TimeSpan.FromMilliseconds(1000), Blursd.BlurRadius, Blursd.ToBlurRadius);
     }
     blurCount++;
 }
Example #7
0
        public LHStartPage()
        {
            InitializeComponent();

            this.Frame_SaveLoad.Content   = new LHSaveLoadPage(this);
            this.Frame_Settings.Content   = new LHSettingsPage(this);
            this.Frame_BonusStory.Content = new LongStoryPage(this);

            this.BackGroundSprite = new YuriSprite()
            {
                DisplayBinding   = this.Art_Image_Background,
                AnimationElement = this.Art_Image_Background,
                Descriptor       = new SpriteDescriptor()
            };

            TransformGroup     aniGroup         = new TransformGroup();
            TranslateTransform XYTransformer    = new TranslateTransform();
            ScaleTransform     ScaleTransformer = new ScaleTransform
            {
                CenterX = 1920 / 2,
                CenterY = 1080 / 2
            };
            RotateTransform RotateTransformer = new RotateTransform
            {
                CenterX = 1920 / 2,
                CenterY = 1080 / 2
            };

            aniGroup.Children.Add(XYTransformer);
            aniGroup.Children.Add(ScaleTransformer);
            aniGroup.Children.Add(RotateTransformer);
            this.Art_Image_Background.RenderTransform  = aniGroup;
            this.BackGroundSprite.TranslateTransformer = XYTransformer;
            this.BackGroundSprite.ScaleTransformer     = ScaleTransformer;
            this.BackGroundSprite.RotateTransformer    = RotateTransformer;


            this.ForeGroundSprite = new YuriSprite()
            {
                DisplayBinding   = this.Art_Image_Fore,
                AnimationElement = this.Art_Image_Fore,
                Descriptor       = new SpriteDescriptor()
            };

            TransformGroup     aniGroupFore         = new TransformGroup();
            TranslateTransform XYTransformerFore    = new TranslateTransform();
            ScaleTransform     ScaleTransformerFore = new ScaleTransform
            {
                CenterX = 1920 / 2,
                CenterY = 1080 / 2
            };
            RotateTransform RotateTransformerFore = new RotateTransform
            {
                CenterX = 1920 / 2,
                CenterY = 1080 / 2
            };

            aniGroupFore.Children.Add(XYTransformerFore);
            aniGroupFore.Children.Add(ScaleTransformerFore);
            aniGroupFore.Children.Add(RotateTransformerFore);
            this.Art_Image_Fore.RenderTransform        = aniGroupFore;
            this.ForeGroundSprite.TranslateTransformer = XYTransformerFore;
            this.ForeGroundSprite.ScaleTransformer     = ScaleTransformerFore;
            this.ForeGroundSprite.RotateTransformer    = RotateTransformerFore;

            this.UiSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_WarpHolder,
                AnimationElement = this.Grid_WarpHolder,
                Descriptor       = new SpriteDescriptor()
            };
            this.RootButtonSprite = new YuriSprite()
            {
                DisplayBinding   = this.Title_Root_Button_Warp,
                AnimationElement = this.Title_Root_Button_Warp,
                Descriptor       = new SpriteDescriptor()
            };

            this.CloudHolderSprite = new YuriSprite()
            {
                DisplayBinding   = this.Art_Canvas_Cloud,
                AnimationElement = this.Art_Canvas_Cloud,
                Descriptor       = new SpriteDescriptor()
            };
            this.CloudSpriteA = new YuriSprite()
            {
                DisplayBinding   = this.Art_Image_Background_Cloud_1,
                AnimationElement = this.Art_Image_Background_Cloud_1,
                Descriptor       = new SpriteDescriptor()
            };
            this.CloudSpriteB = new YuriSprite()
            {
                DisplayBinding   = this.Art_Image_Background_Cloud_2,
                AnimationElement = this.Art_Image_Background_Cloud_2,
                Descriptor       = new SpriteDescriptor()
            };

            this.MaskSprite = new YuriSprite()
            {
                DisplayBinding   = this.Mask_Black,
                AnimationElement = this.Mask_Black,
                Descriptor       = new SpriteDescriptor()
            };
            this.WarpedPageSprite = new YuriSprite()
            {
                DisplayBinding   = this.Grid_LoadUIWarp,
                AnimationElement = this.Grid_LoadUIWarp,
                Descriptor       = new SpriteDescriptor()
            };

            this.GalleryWarpSprite = new YuriSprite()
            {
                DisplayBinding   = this.Canvas_Gallery,
                AnimationElement = this.Canvas_Gallery,
                Descriptor       = new SpriteDescriptor()
            };
            this.GalleryContentWarpSprite = new YuriSprite()
            {
                DisplayBinding   = this.Canvas_Gallery_ContentWarp,
                AnimationElement = this.Canvas_Gallery_ContentWarp,
                Descriptor       = new SpriteDescriptor()
            };
            this.GalleryStaffSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_Gallery_Staff,
                AnimationElement = this.Image_Gallery_Staff,
                Descriptor       = new SpriteDescriptor()
            };
            this.GalleryArtSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_Art_Displayer,
                AnimationElement = this.Image_Art_Displayer,
                Descriptor       = new SpriteDescriptor()
            };
        }
Example #8
0
        public LHPage()
        {
            InitializeComponent();

            this.Frame_SaveLoad.Content = new LHSaveLoadPage(this);
            this.Frame_Settings.Content = new LHSettingsPage(this);

            this.MainStageSprite = new YuriSprite()
            {
                DisplayBinding   = ViewManager.mWnd.mainFrame,
                AnimationElement = ViewManager.mWnd.mainFrame,
                Descriptor       = new SpriteDescriptor()
            };
            this.PanelSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_Panel,
                AnimationElement = this.Image_Panel,
                Descriptor       = new SpriteDescriptor()
            };
            this.WhitePanelSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_WhiteSpan,
                AnimationElement = this.Image_WhiteSpan,
                Descriptor       = new SpriteDescriptor()
            };
            this.NameLogoSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_NameLogo,
                AnimationElement = this.Image_NameLogo,
                Descriptor       = new SpriteDescriptor()
            };
            this.ButtonGroupSprite = new YuriSprite()
            {
                DisplayBinding   = this.Canvas_RightButtonGroups,
                AnimationElement = this.Canvas_RightButtonGroups,
                Descriptor       = new SpriteDescriptor()
            };
            this.CommonBackButtonSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_Button_Back,
                AnimationElement = this.Image_Button_Back,
                Descriptor       = new SpriteDescriptor()
            };
            this.EpisodeHintSprite = new YuriSprite()
            {
                DisplayBinding   = this.Canvas_EpHinter,
                AnimationElement = this.Canvas_EpHinter,
                Descriptor       = new SpriteDescriptor()
            };
            this.SubTitleSprite = new YuriSprite()
            {
                DisplayBinding   = this.Image_SubTitle,
                AnimationElement = this.Image_SubTitle,
                Descriptor       = new SpriteDescriptor()
            };

            this.BacklogStackSprite = new YuriSprite()
            {
                DisplayBinding   = this.Scroll_BacklogBoxing,
                AnimationElement = this.Scroll_BacklogBoxing,
                Descriptor       = new SpriteDescriptor()
            };
            this.SaveLoadPageSprite = new YuriSprite()
            {
                DisplayBinding   = this.Frame_SaveLoad,
                AnimationElement = this.Frame_SaveLoad,
                Descriptor       = new SpriteDescriptor()
            };
            this.SettingsPageSprite = new YuriSprite()
            {
                DisplayBinding   = this.Frame_Settings,
                AnimationElement = this.Frame_Settings,
                Descriptor       = new SpriteDescriptor()
            };
        }
Example #9
0
        /// <summary>
        /// 从资源文件中获取图片资源并返回精灵对象
        /// </summary>
        /// <param name="sourceName">资源名称</param>
        /// <param name="rtype">资源类型</param>
        /// <param name="cutRect">纹理切割矩</param>
        /// <returns>该资源的精灵</returns>
        private YuriSprite GetGraphicSprite(string sourceName, ResourceType rtype, Int32Rect?cutRect)
        {
            if (sourceName == String.Empty)
            {
                return(null);
            }
            YuriSprite sprite = new YuriSprite();
            string     DevURI, PackURI;

            // 处理路径
            switch (rtype)
            {
            case ResourceType.Background:
                DevURI  = GlobalConfigContext.DevURI_PA_BACKGROUND;
                PackURI = GlobalConfigContext.PackURI_PA_BACKGROUND;
                break;

            case ResourceType.Stand:
                DevURI  = GlobalConfigContext.DevURI_PA_CHARASTAND;
                PackURI = GlobalConfigContext.PackURI_PA_CHARASTAND;
                break;

            case ResourceType.Pictures:
                DevURI  = GlobalConfigContext.DevURI_PA_PICTURES;
                PackURI = GlobalConfigContext.PackURI_PA_PICTURES;
                break;

            default:
                return(null);
            }
            // 总是先查看是否有为封包的数据
            if (this.resourceTable.ContainsKey(DevURI) &&
                this.resourceTable[DevURI].ContainsKey(sourceName))
            {
                // 检查缓冲
                var ob = ResourceCachePool.Refer(rtype.ToString() + "->" + sourceName, ResourceCacheType.Eden);
                if (ob == null)
                {
                    var sourceSlot = this.resourceTable[DevURI][sourceName];
                    ob = PackageUtils.GetObjectBytes(sourceSlot.BindingFile, sourceName, sourceSlot.Position, sourceSlot.Length);
                    ResourceCachePool.Register(rtype.ToString() + "->" + sourceName, ob, ResourceCacheType.Eden);
                }
                MemoryStream ms = new MemoryStream(ob);
                sprite.Init(sourceName, rtype, ms, cutRect);
            }
            // 没有封包数据再搜索开发目录
            else
            {
                // 检查缓冲
                byte[] ob = ResourceCachePool.Refer(rtype.ToString() + "->" + sourceName, ResourceCacheType.Eden);
                if (ob == null)
                {
                    string furi = IOUtils.JoinPath(GlobalConfigContext.DevURI_RT_PICTUREASSETS, DevURI, sourceName);
                    if (File.Exists(IOUtils.ParseURItoURL(furi)))
                    {
                        Uri bg = new Uri(IOUtils.ParseURItoURL(furi), UriKind.RelativeOrAbsolute);
                        ob = IOUtils.GetObjectBytes(bg);
                        ResourceCachePool.Register(rtype.ToString() + "->" + sourceName, ob, ResourceCacheType.Eden);
                    }
                    else
                    {
                        MessageBox.Show("[错误] 资源文件不存在:" + sourceName);
                        Director.GetInstance().GetMainRender().Shutdown();
                        return(null);
                    }
                }
                MemoryStream ms = new MemoryStream(ob);
                sprite.Init(sourceName, rtype, ms, cutRect);
            }
            return(sprite);
        }
Example #10
0
        public void StoryBookForwardNextSteady()
        {
            // 如果在看背景就先切回故事模式
            if (this.ShowingBackground)
            {
                DecorateSprite.Descriptor.ToOpacity = 1;
                DialogueSprite.Descriptor.ToOpacity = 1;
                SpriteAnimation.OpacityToAnimation(DecorateSprite, TimeSpan.FromMilliseconds(100), 1);
                SpriteAnimation.OpacityToAnimation(DialogueSprite, TimeSpan.FromMilliseconds(100), 1);
                //SpriteAnimation.BlurMutexAnimation(MainFrameSprite, TimeSpan.FromMilliseconds(100), 0, 30);
                this.ShowingBackground = false;
                return;
            }
            // 选择项就忽略
            if (this.IsStoryBranching)
            {
                return;
            }
            // 打字动画中就跳过
            if (MsgStoryboard != null)
            {
                lock (MsgStoryboard)
                {
                    if (MsgStoryboard != null)
                    {
                        MsgStoryboard.SkipToFill();
                        return;
                    }
                }
            }
            // 瞄下队列头,是否是空队列,是的话说明要换页
            if (CurrentMessageQueue.Count == 0)
            {
                // 全部都结束啦
                if (PendingMessageQueue.Count == 0)
                {
                    this.PrepareClose();
                    return;
                }
                this.StackPanel_DialogList.Children.Clear();
                CurrentMessageQueue = PendingMessageQueue.Dequeue();
                if (IntentBacklog != null)
                {
                    BacklogStack.Push(IntentBacklog);
                }
                IntentBacklog = ForkableState.DeepCopyBySerialization(CurrentMessageQueue);
            }
            // 取下一条要显示的内容
            var currentRun = CurrentMessageQueue.Dequeue();

            // 选择支:SELECT@分支1@分支2@...
            if (currentRun.StartsWith("SELECT@"))
            {
                var selectionItem = currentRun.Split('@');
                var insertBlock   = new TextBlock
                {
                    Opacity      = 1,
                    Margin       = new Thickness(10, 16, 10, 50),
                    TextWrapping = TextWrapping.Wrap,
                    Foreground   = new SolidColorBrush(Colors.White),
                    FontSize     = 30,
                    FontFamily   = new FontFamily(new Uri("pack://application:,,,/"), "Resources/#Source Han Serif CN SemiBold"),
                    Text         = selectionItem[1]
                };
                this.StackPanel_DialogList.Children.Add(insertBlock);
                for (var i = 2; i < selectionItem.Length; i++)
                {
                    var selectionLable = new Label
                    {
                        Background = new SolidColorBrush(Color.FromArgb(70, 0, 0, 0)),
                        Margin     = new Thickness(10, 80, 10, 0),
                        Foreground = new SolidColorBrush(Colors.White),
                        Height     = 60,
                        FontSize   = 30,
                        FontFamily = new FontFamily(new Uri("pack://application:,,,/"), "Resources/#Source Han Serif CN SemiBold"),
                        HorizontalContentAlignment = HorizontalAlignment.Center,
                        VerticalContentAlignment   = VerticalAlignment.Center,
                        Content = selectionItem[i],
                        Tag     = i.ToString()
                    };
                    selectionLable.MouseEnter        += this.Selection_OnMouseEnter;
                    selectionLable.MouseLeave        += this.Selection_OnMouseLeave;
                    selectionLable.MouseLeftButtonUp += this.Selection_OnMouseLeftButtonUp;
                    this.StackPanel_DialogList.Children.Add(selectionLable);
                }
                this.IsStoryBranching = true;
            }
            // 背景:BG@变换时间@图片资源名
            else if (currentRun.StartsWith("BG@"))
            {
                var selectionItem   = currentRun.Split('@');
                var bgTransformTime = Convert.ToInt32(selectionItem[1]);
                var bgResourceName  = selectionItem[2];
                if (bgResourceName != String.Empty)
                {
                    // backlay
                    if (this.Image_StoryBook_BgTransitor.Source == null)
                    {
                        this.Grid_StoryBook.Background = new SolidColorBrush(Colors.Transparent);
                    }
                    else
                    {
                        this.Grid_StoryBook.Background = new ImageBrush(this.Image_StoryBook_BgTransitor.Source);
                    }
                    BgTransitorSprite.Descriptor.Opacity     = 0;
                    BgTransitorSprite.DisplayBinding.Opacity = 0;
                    this.Image_StoryBook_BgTransitor.Source  = resMana.GetPicture(bgResourceName, ResourceManager.FullImageRect).SpriteBitmapImage;
                    BgTransitorSprite.Descriptor.ToOpacity   = 1;
                    SpriteAnimation.OpacityToAnimation(BgTransitorSprite, TimeSpan.FromMilliseconds(bgTransformTime), 1);
                }
                else
                {
                    this.Grid_StoryBook.Background         = new SolidColorBrush(Colors.Transparent);
                    BgTransitorSprite.Descriptor.ToOpacity = 0;
                    SpriteAnimation.OpacityToAnimation(BgTransitorSprite, TimeSpan.FromMilliseconds(bgTransformTime), 0);
                }
                this.StoryBookForwardNextSteady();
            }
            // 声效:SE@音量@SE资源名
            else if (currentRun.StartsWith("SE@"))
            {
                var selectionItem = currentRun.Split('@');
                var volume        = Convert.ToDouble(selectionItem[1]);
                Musician.GetInstance().PlaySE(resMana.GetSE(selectionItem[2]), (float)volume);
                this.StoryBookForwardNextSteady();
            }
            else
            {
                var dialogItem = currentRun.Split('@');
                var fgColor    = Colors.White;
                if (dialogItem.Length > 1)
                {
                    if (CharacterColorDict.ContainsKey(dialogItem[0]))
                    {
                        fgColor = CharacterColorDict[dialogItem[0]];
                    }

                    currentRun = dialogItem[1];
                }
                var insertBlock = new TextBlock
                {
                    Opacity      = 1,
                    Margin       = new Thickness(10, 16, 10, 10),
                    TextWrapping = TextWrapping.Wrap,
                    Foreground   = new SolidColorBrush(fgColor),
                    FontSize     = 30,
                    FontFamily   = new FontFamily(new Uri("pack://application:,,,/"), "Resources/#Source Han Serif CN SemiBold"),
                    Text         = String.Empty
                };
                // 把前一条内容透明化
                if (this.StackPanel_DialogList.Children.Count > 0)
                {
                    var lastMsgBlock      = this.StackPanel_DialogList.Children[this.StackPanel_DialogList.Children.Count - 1] as TextBlock;
                    var OpacingDescriptor = new YuriSprite()
                    {
                        DisplayBinding   = lastMsgBlock,
                        AnimationElement = lastMsgBlock,
                        Descriptor       = new SpriteDescriptor()
                    };
                    OpacingDescriptor.Descriptor.ToOpacity = 0.4;
                    SpriteAnimation.OpacityToAnimation(OpacingDescriptor, TimeSpan.FromMilliseconds(500), 0.4);
                }
                this.StackPanel_DialogList.Children.Add(insertBlock);
                this.TypeWriter(String.Empty, currentRun, insertBlock, GlobalConfigContext.GAME_MSG_TYPING_DELAY);
            }
        }
Example #11
0
        private void transitTab(string fromTab, string toTab)
        {
            YuriSprite fromSprite = null;
            YuriSprite toSprite   = null;

            switch (fromTab)
            {
            case "Graphic":
                fromSprite = this.GrahpicTabSprite;
                break;

            case "Voice":
                fromSprite = this.VoiceTabSprite;
                break;

            case "Keyboard":
                fromSprite = this.KeyboardTabSprite;
                break;

            case "Others":
                fromSprite = this.OthersTabSprite;
                break;
            }
            switch (toTab)
            {
            case "Graphic":
                toSprite = this.GrahpicTabSprite;
                break;

            case "Voice":
                toSprite = this.VoiceTabSprite;
                break;

            case "Keyboard":
                toSprite = this.KeyboardTabSprite;
                break;

            case "Others":
                toSprite = this.OthersTabSprite;
                break;
            }
            this.Canvas_SettingsRoot.IsHitTestVisible = false;
            toSprite.DisplayBinding.Visibility        = Visibility.Visible;

            toSprite.Descriptor.ToX       = 1920 / 2 + 100;
            toSprite.Descriptor.ToOpacity = 0;
            SpriteAnimation.XMoveToAnimation(toSprite, new Duration(TimeSpan.FromMilliseconds(0)), toSprite.Descriptor.ToX, 0, null);
            SpriteAnimation.OpacityToAnimation(toSprite, new Duration(TimeSpan.FromMilliseconds(0)), 0, 0, null);

            Storyboard sb = new Storyboard();


            fromSprite.Descriptor.ToX       = 1920 / 2 - 100;
            fromSprite.Descriptor.ToOpacity = 0;
            toSprite.Descriptor.ToX         = 1920 / 2;
            toSprite.Descriptor.ToOpacity   = 1;
            SpriteAnimation.XMoveToAnimation(fromSprite, new Duration(TimeSpan.FromMilliseconds(200)), fromSprite.Descriptor.ToX, -0.6, null, providedStory: sb);
            SpriteAnimation.XMoveToAnimation(toSprite, new Duration(TimeSpan.FromMilliseconds(200)), toSprite.Descriptor.ToX, -0.6, null, providedStory: sb);
            SpriteAnimation.OpacityToAnimation(fromSprite, new Duration(TimeSpan.FromMilliseconds(200)), 0, 0, null, providedStory: sb);
            SpriteAnimation.OpacityToAnimation(toSprite, new Duration(TimeSpan.FromMilliseconds(200)), 1, 0, null, providedStory: sb);
            sb.Completed += (_, __) =>
            {
                this.Canvas_SettingsRoot.IsHitTestVisible = true;
                fromSprite.DisplayBinding.Visibility      = Visibility.Hidden;
            };
            sb.Begin();
        }