UEXDev

SceneNode Impl

May 8th, 2012
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.51 KB | None | 0 0
  1. public abstract class GameScreen : DrawableGameComponent
  2. {
  3.     protected IScreenManager ScreenManager { get; private set; }
  4.     protected IGameManager GameManager { get; private set; }
  5.     protected IInputManager InputManager { get; private set; }
  6.  
  7.     public List<GameComponent> Components { get; private set; }
  8.  
  9.     public bool IsInitialized { get; private set; }
  10.  
  11.     public GameScreen(Game game)
  12.         : base(game)
  13.     {
  14.         Components = new List<GameComponent>();
  15.  
  16.         ScreenManager = Game.Services.GetService<IScreenManager>();
  17.         GameManager = Game.Services.GetService<IGameManager>();
  18.         InputManager = Game.Services.GetService<IInputManager>();
  19.     }
  20.  
  21.     public void Show()
  22.     {
  23.         if (!IsInitialized)
  24.             Initialize();
  25.  
  26.         Enabled = true;
  27.         Visible = true;
  28.     }
  29.  
  30.     public void Hide()
  31.     {
  32.         Enabled = false;
  33.         Visible = false;
  34.     }
  35.  
  36.     public void Pause()
  37.     {
  38.         Enabled = false;
  39.         Visible = true;
  40.     }
  41.  
  42.     public override void Update(GameTime gameTime)
  43.     {
  44.         if (!Enabled) return;
  45.            
  46.         // wir rufen Update() auf allen Komponenten auf, die Enabled sind.
  47.         foreach (var component in Components
  48.             .Where(x => x.Enabled))
  49.         {
  50.             component.Update(gameTime);
  51.         }
  52.  
  53.         base.Update(gameTime);
  54.     }
  55.  
  56.     public override void Draw(GameTime gameTime)
  57.     {
  58.         if (!Visible) return;
  59.  
  60.         // wir rufen Draw() auf allen Komponenten auf, die DrawableGameComponents und Visible sind
  61.         foreach (var component in Components
  62.             .OfType<DrawableGameComponent>()
  63.             .Where(x => x.Visible))
  64.         {
  65.             component.Draw(gameTime);
  66.         }
  67.  
  68.         base.Draw(gameTime);
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment