Esempio n. 1
0
        /// <summary>
        ///     Removes one <see cref="Scene" /> from the <see cref="SceneStack" />
        /// </summary>
        private static void RemoveScene(AbstractTransition transition = null)
        {
            //Game.ResetFrameCounter();

            if (transition == null)
            {
                var sm = GetInstance();

                var c = sm.SceneStack.Count;

                if (c <= 0)
                {
                    return;
                }

                sm.SceneStack.Last().UnloadContent();
                sm.SceneStack.Last().ResetScene();
                sm.SceneStack.RemoveAt(c - 1);
            }
            else
            {
                transition.SetLambda(() => RemoveScene());
                AddTransition(transition);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///     Adds a <see cref="Scene" /> to the <see cref="SceneStack" />
        /// </summary>
        /// <param name="scene"><see cref="Scene" /> that's added to the <see cref="SceneStack" /></param>
        /// <param name="transition"></param>
        public static void AddScene(Scene scene, AbstractTransition transition = null)
        {
            //Game.ResetFrameCounter();

            if (transition == null)
            {
                var sm = GetInstance();

                sm.SceneStack.Add(scene);
                sm.CurrentScene.ResetScene();
                sm.CurrentScene.LoadContent();
            }
            else
            {
                transition.SetLambda(() => AddScene(scene));
                AddTransition(transition);
            }
        }
Esempio n. 3
0
        /// <summary>
        ///     Adds a <see cref="Scene" /> to the <see cref="SceneStack" /> by <paramref name="key" />
        /// </summary>
        /// <param name="key"></param>
        /// <param name="transition"></param>
        public static void AddScene(string key, AbstractTransition transition = null)
        {
            if (key == GetCurrentScene().SceneKey)
            {
                return;
            }

            //Game.ResetFrameCounter();

            if (transition == null)
            {
                var sm = GetInstance();

                sm.SceneStack.Add(sm.SceneDictionary[key]);
                sm.CurrentScene.ResetScene();
                sm.CurrentScene.LoadContent();
            }
            else
            {
                transition.SetLambda(() => AddScene(key));
                AddTransition(transition);
            }
        }