Beispiel #1
0
        // main procedures
        private void StartNewScene(Scene.SceneType scene, object data = null)
        {
            Scene s = null;

            switch (scene)
            {
            case Scene.SceneType.StartScreen:
                s = new StartScreenScene(this.ClientSize.Width, this.ClientSize.Height);
                break;

            case Scene.SceneType.GamePlay:
                s = new GamePlayScene(this.ClientSize.Width, this.ClientSize.Height, data);
                break;

            case Scene.SceneType.Intermission:
                s = new IntermissionScene(this.ClientSize.Width, this.ClientSize.Height, data);
                break;

            case Scene.SceneType.GameOver:
                s = new GameOverScene(this.ClientSize.Width, this.ClientSize.Height);
                break;
            }
            s.OnLeave += Scene_OnLeave;
            s.Init();
            this.currentScene = s;
        }
Beispiel #2
0
        public void ChangeScene(Scene.SceneType type)
        {
            Scene nextScene = null;

            switch (type)
            {
            case Scene.SceneType.Game:
                nextScene = new GameScene(spriteBatch, this);
                break;

            case Scene.SceneType.Login:
                nextScene = new LoginScene(spriteBatch, this);
                break;
            }

            nextScene.LoadScene();
            //TODO: unload last scene
            currentScene = nextScene;
        }
Beispiel #3
0
 // scene event handlers
 private void Scene_OnLeave(object sender, Scene.SceneType nextScene, object data)
 {
     StartNewScene(nextScene, data);
 }