private void DoLoad(bool dummy) { this.LevelManager.ChangeLevel(this.ToLevel); this.GameState.ScheduleLoadEnd = true; this.Phase = LevelTransition.Phases.FadeIn; this.SinceStarted = TimeSpan.Zero; }
public override void Update(GameTime gameTime) { if (this.Phase != LevelTransition.Phases.LevelChange) { this.SinceStarted += gameTime.ElapsedGameTime; } if (this.SinceStarted.TotalSeconds > 1.25) { switch (this.Phase) { case LevelTransition.Phases.FadeOut: this.Phase = LevelTransition.Phases.LevelChange; this.GameState.Loading = true; Worker <bool> worker = this.ThreadPool.Take <bool>(new Action <bool>(this.DoLoad)); worker.Finished += (Action)(() => this.ThreadPool.Return <bool>(worker)); worker.Start(false); break; case LevelTransition.Phases.FadeIn: ServiceHelper.RemoveComponent <LevelTransition>(this); break; } } base.Update(gameTime); }
public override void Update(GameTime gameTime) { if (this.Phase != LevelTransition.Phases.LevelChange) this.SinceStarted += gameTime.ElapsedGameTime; if (this.SinceStarted.TotalSeconds > 1.25) { switch (this.Phase) { case LevelTransition.Phases.FadeOut: this.Phase = LevelTransition.Phases.LevelChange; this.GameState.Loading = true; Worker<bool> worker = this.ThreadPool.Take<bool>(new Action<bool>(this.DoLoad)); worker.Finished += (Action) (() => this.ThreadPool.Return<bool>(worker)); worker.Start(false); break; case LevelTransition.Phases.FadeIn: ServiceHelper.RemoveComponent<LevelTransition>(this); break; } } base.Update(gameTime); }