示例#1
0
        public ScreenManager(Game game)
            : base(game)
        {
            _spriteBatch = (SpriteBatch)game.Services.GetService(typeof(SpriteBatch));

            // Sets initial screen to start screen since that is
            // the first screen that is present in the game

            // TODO: set first screen
            _activeScreen = new StartScreen(game, _spriteBatch);
        }
示例#2
0
        public override void Update(ref Screen activeScreen, GameTime gameTime)
        {
            _currentState = Keyboard.GetState();
            if (_currentState != _prevState && _currentState.IsKeyDown(Keys.Enter))
            {
                activeScreen = new GameScreen(_game, _spriteBatch);
            }
            _prevState = _currentState;

            if (GameProperties.Instance.Start)
            {
                GameProperties.Instance.Start = false;
                activeScreen = new GameScreen(_game, _spriteBatch);
            }
        }
示例#3
0
        public override void Update(ref Screen activeScreen, GameTime gameTime)
        {
            if (!GameProperties.Instance.GameOver)
            {
                _lastFrame += gameTime.ElapsedGameTime.Milliseconds;
                if (_lastFrame > _time)
                {
                    GameProperties.Instance.Score += ( 1 * GameProperties.Instance.Multiplier );
                    _lastFrame = 0;
                }
            }
            else
            {
                if (GameProperties.Instance.Score > GameProperties.Instance.HighScore)
                {
                    GameProperties.Instance.HighScore = GameProperties.Instance.Score;
                }
            }

            if (_backgroundMusic == null)
            {
                _backgroundMusic = Resources.Instance.GetSound("RockMusic").CreateInstance();
                _backgroundMusic.IsLooped = true;
                _backgroundMusic.Volume = 0.5f;
                _backgroundMusic.Play();
            }
            _currState = Keyboard.GetState();
            if (GameProperties.Instance.GameOver && _currState.IsKeyDown(Keys.Enter))
            {
                _game.Components.Remove(_keyboard);
                _game.Components.Remove(_spriteManager);
                _backgroundMusic.Stop();
                GameProperties.Instance.GameOver = false;
                activeScreen = new StartScreen(_game, _spriteBatch);
            }
            if (GameProperties.Instance.GameOver && GameProperties.Instance.Reset)
            {
                GameProperties.Instance.Reset = false;
                _game.Components.Remove(_keyboard);
                _game.Components.Remove(_spriteManager);
                _backgroundMusic.Stop();
                GameProperties.Instance.GameOver = false;
                activeScreen = new StartScreen(_game, _spriteBatch);
            }
        }
示例#4
0
 // Passes reference so can change the screen based
 // off user input.
 public abstract void Update(ref Screen activeScreen, GameTime gameTime);