Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class GameScreen : DrawableGameComponent
- {
- protected IScreenManager ScreenManager { get; private set; }
- protected IGameManager GameManager { get; private set; }
- protected IInputManager InputManager { get; private set; }
- public List<GameComponent> Components { get; private set; }
- public bool IsInitialized { get; private set; }
- public GameScreen(Game game)
- : base(game)
- {
- Components = new List<GameComponent>();
- ScreenManager = Game.Services.GetService<IScreenManager>();
- GameManager = Game.Services.GetService<IGameManager>();
- InputManager = Game.Services.GetService<IInputManager>();
- }
- public void Show()
- {
- if (!IsInitialized)
- Initialize();
- Enabled = true;
- Visible = true;
- }
- public void Hide()
- {
- Enabled = false;
- Visible = false;
- }
- public void Pause()
- {
- Enabled = false;
- Visible = true;
- }
- public override void Update(GameTime gameTime)
- {
- if (!Enabled) return;
- // wir rufen Update() auf allen Komponenten auf, die Enabled sind.
- foreach (var component in Components
- .Where(x => x.Enabled))
- {
- component.Update(gameTime);
- }
- base.Update(gameTime);
- }
- public override void Draw(GameTime gameTime)
- {
- if (!Visible) return;
- // wir rufen Draw() auf allen Komponenten auf, die DrawableGameComponents und Visible sind
- foreach (var component in Components
- .OfType<DrawableGameComponent>()
- .Where(x => x.Visible))
- {
- component.Draw(gameTime);
- }
- base.Draw(gameTime);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment