Esempio n. 1
0
        public void Draw(GameTime gameTime)
        {
            var transform = _camera.GetTransformation();

            _spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null, null, transform);
            _spriteBatch.Draw(_background, new Rectangle(0, 0, WorldWidth, WorldHeight), null, BackgroundColor);
            for (var i = 0; i < _walls.Count; i++)
            {
                _walls[i].Draw();
            }
            _spriteBatch.End();

            _spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, transform);
            _dragon.Draw();

            for (var i = 0; i < _bubbles.Count; i++)
            {
                _bubbles[i].Draw();
            }

            for (var i = 0; i < _enemies.Count; i++)
            {
                _enemies[i].Draw();
            }

            _spriteBatch.End();

            if (_gameInput.ShowDebug)
            {
                var projection = Matrix.CreateOrthographicOffCenter(0f, _camera.ViewportWidth, _camera.ViewportHeight, 0f, 0f, 1f);
                var scale      = Matrix.CreateScale(32f) * transform;
                _debugView.RenderDebugData(projection, scale);
            }
        }
Esempio n. 2
0
        public void Draw(GameTime gameTime)
        {
            var transform = _camera.GetTransformation();

            // Draw the walls
            // Notice the use of SamplerState.LinearWrap - this causes the textures to repeat instead of being stretched
            _spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.LinearWrap, null, null, null, transform);
            _spriteBatch.Draw(_background, new Rectangle(0, 0, WorldWidth, WorldHeight), null, BackgroundColor);
            for (var i = 0; i < _walls.Count; i++)
            {
                _walls[i].Draw();
            }
            _spriteBatch.End();


            // Draw the dragon
            _spriteBatch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, transform);
            _dragon.Draw();
            _spriteBatch.End();
        }