Example #1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 private Director()
 {
     CommonUtils.ConsoleLine("CurrentDirectory is: " + System.Environment.CurrentDirectory, "Director", OutputStyle.Normal);
     CommonUtils.ConsoleLine("BaseDirectory is: " + System.AppDomain.CurrentDomain.BaseDirectory, "Director", OutputStyle.Normal);
     this.InitConfig();
     this.resMana = ResourceManager.GetInstance();
     Director.RunMana = new RuntimeManager();
     this.updateRender = new UpdateRender();
     Director.RunMana.SetScreenManager(ScreenManager.GetInstance());
     this.timer = new DispatcherTimer();
     this.timer.Interval = TimeSpan.FromMilliseconds(GlobalDataContainer.DirectorTimerInterval);
     this.timer.Tick += UpdateContext;
     #if NOTIME
     #else
     this.timer.Start();
     this.InitRuntime();
     #endif
 }
Example #2
0
 /// <summary>
 /// 设置运行时环境管理器,用于读取保存的信息
 /// </summary>
 /// <param name="rm">反序列化后的RM实例</param>
 public static void ResumeFromSaveData(RuntimeManager rm)
 {
     // 清空画面并停下BGM
     ViewManager.GetInstance().RemoveView(ResourceType.Unknown);
     Musician.GetInstance().StopAndReleaseBGM();
     // 变更运行时环境
     Director.RunMana = rm;
     CommonUtils.ConsoleLine("RuntimeManager is replaced", "Director", OutputStyle.Important);
     // 变更屏幕管理器
     ScreenManager.ResetSynObject(Director.RunMana.Screen);
     CommonUtils.ConsoleLine("ScreenManager is replaced", "Director", OutputStyle.Important);
     // 重绘整个画面
     ViewManager.GetInstance().ReDraw();
     // 恢复背景音乐
     Director.GetInstance().updateRender.Bgm(Director.RunMana.PlayingBGM, GlobalDataContainer.GAME_SOUND_BGMVOL);
     // 清空字符串缓冲
     Director.GetInstance().updateRender.dialogPreStr = String.Empty;
     Director.GetInstance().updateRender.pendingDialogQueue.Clear();
     // 弹空全部等待,复现保存最后一个动作
     Director.RunMana.ExitUserWait();
     Interrupt reactionNtr = new Interrupt()
     {
         type = InterruptType.LoadReaction,
         detail = "Reaction for load data",
         interruptSA = Director.RunMana.DashingPureSa,
         interruptFuncSign = "",
         returnTarget = null,
         pureInterrupt = true
     };
     // 提交中断
     Director.RunMana.CallStack.Submit(reactionNtr);
 }