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); } }
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(); }