예제 #1
0
 /// <summary>
 /// Actually performs the stage loading.
 /// </summary>
 /// <param name="resourceFactory"></param>
 /// <param name="stageType"></param>
 private void LoadStage(IGameResourceFactory resourceFactory, Type stageType, object param = null)
 {
     if (this.ActiveGameStage != null)
     {
         this.ActiveGameStage.Exit(() =>
         {
             this.ActiveGameStage = Activator.CreateInstance(stageType) as GameStage;
             this.ActiveGameStage.GameStageManager    = this;
             this.ActiveGameStage.GameResourceFactory = resourceFactory;
             this.ActiveGameStage.Load(param);
             FirstUpdate = true;
         });
     }
     else
     {
         this.ActiveGameStage = Activator.CreateInstance(stageType) as GameStage;
         this.ActiveGameStage.GameStageManager    = this;
         this.ActiveGameStage.GameResourceFactory = resourceFactory;
         this.ActiveGameStage.Load(param);
         FirstUpdate = true;
     }
 }
예제 #2
0
 /// <summary>
 /// Invoke when the initial Stage should be loaded.
 /// </summary>
 public void Initialize(IGameResourceFactory resourceFactory)
 {
     _resourceFactory = resourceFactory;
     LoadStage(resourceFactory, GameStageRegistry.Default);
 }