Exemplo n.º 1
0
 private static void LogSceneLoaded(string id, ISceneInfo info, ISceneLoadParameters parameters, Scene scene, bool isAsync = false)
 {
     Log.Debug("Manager Scene Loader loaded", new
     {
         id,
         info = new
         {
             info.LoaderId,
             info.Address
         },
         parameters = new
         {
             parameters.AddMode,
             parameters.PhysicsMode,
             parameters.AllowActivation
         },
         scene = new
         {
             scene.handle,
             scene.name,
             scene.path,
             scene.buildIndex,
             scene.rootCount,
             scene.isSubScene
         },
         isAsync
     });
 }
Exemplo n.º 2
0
 private static void LogSceneUnload(string id, ISceneInfo info, ISceneUnloadParameters parameters, Scene scene, bool unloadUnused, bool isAsync = false)
 {
     Log.Debug("Manager Scene Loader unloading", new
     {
         id,
         info = new
         {
             info.LoaderId,
             info.Address
         },
         parameters = new
         {
             parameters.Options
         },
         scene = new
         {
             scene.handle,
             scene.name,
             scene.path,
             scene.buildIndex,
             scene.rootCount,
             scene.isSubScene
         },
         unloadUnused,
         isAsync
     });
 }
Exemplo n.º 3
0
 /// <summary>
 /// 發生於場景排行榜被選取時
 /// </summary>
 /// <param name="sceneInfo">場景資訊</param>
 /// <param name="level">關卡等級</param>
 protected virtual void OnSceneHightScoreClick(ISceneInfo sceneInfo)
 {
     if (SceneHightScoreClick != null)
     {
         SceneHightScoreClick(this, sceneInfo, 0);
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 發生於場景被選取時
 /// </summary>
 /// <param name="sceneInfo">場景資訊</param>
 /// <param name="level">關卡等級</param>
 protected virtual void OnSceneChoice(ISceneInfo sceneInfo, int level)
 {
     if (SceneChoice != null)
     {
         SceneChoice(this, sceneInfo, level);
     }
 }
Exemplo n.º 5
0
 public void ReloadScene()
 {
     if (CurrentScene == null)
     {
         CurrentScene = new SceneName(SceneManager.GetActiveScene().name);
     }
     LoadScene(CurrentScene);
 }
Exemplo n.º 6
0
        public void LoadScene(ISceneInfo sceneInfo)
        {
            var sceneName = sceneInfo.Name;

            SceneManager.LoadScene(sceneName);
            CurrentScene = sceneInfo;
            _events.Fire(new Scene_Loaded(sceneInfo));
        }
Exemplo n.º 7
0
 /// <summary>
 /// 增加場景資訊管理物件
 /// </summary>
 /// <param name="sceneSet">場景資訊</param>
 public void AddScene(ISceneInfo sceneSet)
 {
     _Items.Add(sceneSet.SceneID, sceneSet);
     sceneSet.InfoChanged += (x, e) =>
     {
         _GetInfo = false;
     };
     _GetInfo = false;
 }
Exemplo n.º 8
0
        public void LoadScene(ISceneInfo sceneInfo)
        {
            var sceneName = sceneInfo.Name;

            TryOpenLoadingScene();
            _helper.LoadScene(sceneName, (name) => {
                if (name == sceneName)
                {
                    CurrentScene = sceneInfo;
                    _events.Fire(new Scene_Loaded(sceneInfo));
                }
            });
        }
Exemplo n.º 9
0
        public void HightScoreShow(ISceneInfo sceneInfo)
        {
            if (_UIHightScore != null)
            {
                return;
            }

            LockScene(Color.FromArgb(100, 0, 0, 0), 3);
            _UIHightScore        = new ObjectUIHighScore(DirectionType.Center, 5, 5, MoveNull.Value, sceneInfo);
            _UIHightScore.Close += (x, e) =>
            {
                HightScoreHide();
            };
            _UIHightScore.Layout.X = Width / 2;
            _UIHightScore.Layout.Y = Height / 2;
            UIObjects.Add(_UIHightScore);
        }
Exemplo n.º 10
0
 private static void LogSceneUnloaded(string id, ISceneInfo info, ISceneUnloadParameters parameters, bool unloadUnused, bool isAsync = false)
 {
     Log.Debug("Manager Scene Loader unloaded", new
     {
         id,
         info = new
         {
             info.LoaderId,
             info.Address
         },
         parameters = new
         {
             parameters.Options
         },
         unloadUnused,
         isAsync
     });
 }
Exemplo n.º 11
0
 private static void LogSceneLoading(string id, ISceneInfo info, ISceneLoadParameters parameters, bool isAsync = false)
 {
     Log.Debug("Manager Scene Loader loading", new
     {
         id,
         info = new
         {
             info.LoaderId,
             info.Address
         },
         parameters = new
         {
             parameters.AddMode,
             parameters.PhysicsMode,
             parameters.AllowActivation
         },
         isAsync
     });
 }
Exemplo n.º 12
0
 public AsyncSceneLoader(IEvent events, Settings settings, AsyncLoadHelper helper)
 {
     _events       = events;
     _loadingScene = settings.LoadingSceneInfo;
     _helper       = helper;
 }
Exemplo n.º 13
0
        public Scene_Loaded(ISceneInfo sceneInfo)
        {
            SceneInfo = sceneInfo;

            // To Do...
        }
Exemplo n.º 14
0
        public ObjectUIHighScore(DirectionType anchor, int x, int y, MoveBase moveObject, ISceneInfo sceneInfo)
            : base(anchor, x, y, 380, 390, new DrawUIFrame(Color.AliceBlue, Color.CornflowerBlue, 2, 20), moveObject)
        {
            Propertys.Add(new PropertyShadow(0, 6, 0.95F, 1));

            DrawUIText drawCommandClose      = new DrawUIText(Color.RoyalBlue, Color.Gray, Color.FromArgb(175, 220, 230, 255), Color.FromArgb(100, 140, 255), 1, 10, "關 閉", new Font("微軟正黑體", 14), GlobalFormat.MiddleCenter);
            DrawUIText drawCommandCloseHover = new DrawUIText(Color.RoyalBlue, Color.Gray, Color.FromArgb(220, 255, 250, 235), Color.FromArgb(100, 140, 255), 1, 10, "關 閉", new Font("微軟正黑體", 14), GlobalFormat.MiddleCenter);

            _CommandClose = new ObjectUI(285, 10, 75, 30, drawCommandClose)
            {
                DrawObjectHover = drawCommandCloseHover
            };
            _CommandClose.Propertys.Add(new PropertyShadow(2, 2)
            {
                RFix = -0.5F, GFix = -0.5F, BFix = -0.5F, Opacity = 0.2F
            });
            _CommandClose.Layout.Depend.Anchor = DirectionType.TopLeft;
            _CommandClose.Layout.Depend.SetObject(this);
            _CommandClose.Click += (s, e) => { OnClose(); };
            UIObjects.Add(_CommandClose);

            if (sceneInfo == null)
            {
                return;
            }
            _SceneInfo = sceneInfo;
            int itemWidth  = 40;
            int itemHeight = 25;
            int left       = 15;
            int top        = 15;

            _SceneButtons = new ObjectUI[sceneInfo.MaxLevel];
            for (int i = 0; i < sceneInfo.MaxLevel; i++)
            {
                int         idx        = i + 1;
                DrawUIFrame drawObject = new DrawUIFrame(Color.FromArgb(175, 255, 255, 255), Color.FromArgb(100, 140, 255), 1, 8)
                {
                    Scale = 0.8F
                };
                ObjectUI newObject = new ObjectUI(left, top, itemWidth, itemHeight, drawObject);
                newObject.Layout.Depend.SetObject(this);
                newObject.Layout.Depend.Anchor = DirectionType.TopLeft;
                newObject.Propertys.Add(new PropertyShadow(3, 3)
                {
                    Opacity = 0.2F, ScaleX = 0.95F, ScaleY = 0.95F
                });
                UIObjects.Add(newObject);
                left += itemWidth;

                drawObject.AfterDraw += (s, g, r) =>
                {
                    g.DrawString(idx.ToString(), _ItemFont, Brushes.RoyalBlue, r, GlobalFormat.MiddleCenter);
                };

                newObject.GetFocus += (s, e) =>
                {
                    (s as ObjectUI).DrawObject.Colors.SetColor("Border", Color.Red);
                    _HoverLevel = idx;
                };

                newObject.LostFocus += (s, e) =>
                {
                    (s as ObjectUI).DrawObject.Colors.SetColor("Border", Color.FromArgb(100, 140, 255));
                    _HoverLevel = 0;
                };

                newObject.Click += (s, e) =>
                {
                    SelectedIndex = _HoverLevel;
                };

                _SceneButtons[i] = newObject;
            }
            SelectedIndex = 1;

            DrawUIFrame drawPanel = new DrawUIFrame(Color.FromArgb(180, 220, 240, 250), Color.Empty, 0, 0);
            ObjectUI    panel     = new ObjectUI(10, 50, Layout.Width - 20, Layout.Height - 60, drawPanel);

            panel.Propertys.Add(new PropertyShadow(-2, -2));
            panel.Layout.Depend.SetObject(this);
            panel.Layout.Depend.Anchor = DirectionType.Left | DirectionType.Top;
            UIObjects.Add(panel);

            _DrawRects = new DrawUIText[3, 10];
            _DrawInfos = new string[3, 10];
            int rectLeft = 5, rectTop = 5;
            int rectHeight = 27;

            for (int i = 0; i < 10; i++)
            {
                _DrawRects[0, i] = new DrawUIText(Color.RoyalBlue, Color.Empty, Color.AliceBlue, Color.Empty, 0, 0, "", _ItemFont2, GlobalFormat.MiddleCenter);
                _DrawRects[1, i] = new DrawUIText(Color.RoyalBlue, Color.Empty, Color.WhiteSmoke, Color.Empty, 0, 0, "", _ItemFont2, GlobalFormat.MiddleLeft);
                _DrawRects[2, i] = new DrawUIText(Color.RoyalBlue, Color.Empty, Color.WhiteSmoke, Color.Empty, 0, 0, "", _ItemFont2, GlobalFormat.MiddleRight);

                ObjectUI object1 = new ObjectUI(rectLeft, rectTop, 35, rectHeight, _DrawRects[0, i]);
                ObjectUI object2 = new ObjectUI(rectLeft + 40, rectTop, 210, rectHeight, _DrawRects[1, i]);
                ObjectUI object3 = new ObjectUI(rectLeft + 255, rectTop, 90, rectHeight, _DrawRects[2, i]);

                object1.Propertys.Add(new PropertyShadow(2, 2));
                object2.Propertys.Add(new PropertyShadow(2, 2));
                object3.Propertys.Add(new PropertyShadow(2, 2));
                object1.Layout.Depend.SetObject(panel);
                object2.Layout.Depend.SetObject(panel);
                object3.Layout.Depend.SetObject(panel);
                object1.Layout.Depend.Anchor = DirectionType.Left | DirectionType.Top;
                object2.Layout.Depend.Anchor = DirectionType.Left | DirectionType.Top;
                object3.Layout.Depend.Anchor = DirectionType.Left | DirectionType.Top;
                UIObjects.Add(object1);
                UIObjects.Add(object2);
                UIObjects.Add(object3);

                rectTop += rectHeight + 5;
            }

            _DrawCommandMessage = new DrawUIText(Color.Red, Color.Gray, Color.LightYellow, Color.Black, 1, 0, "連線中...", new Font("微軟正黑體", 20), GlobalFormat.MiddleCenter);
            _CommandMessage     = new ObjectUI(DirectionType.Center, 0, 0, 200, 60, _DrawCommandMessage);
            _CommandMessage.Layout.Depend.SetObject(this);
            _CommandMessage.Layout.Depend.Anchor = DirectionType.Center;
            _CommandMessage.Propertys.Add(new PropertyShadow(2, 4));
            UIObjects.Add(_CommandMessage);
            LoadData();
        }