protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. _spriteBatch = new SpriteBatch(GraphicsDevice); _camera = new Camera2D(GraphicsDevice); // TODO: use this.Content to load your game content here _player = new Player(Content, new Vector2(400, 430)); _player.Load("Animations.xml"); _font = Content.Load<SpriteFont>("font"); Debug.Assert(GraphicsDevice != null, "GraphicsDevice != null"); // ReSharper disable once PossibleLossOfFraction _camera.MinPosition = new Vector2(x: GraphicsDevice.Viewport.Width / 2, y: 0); //Camera.MaxPosition = new Vector2(map.Dimensions.X - GraphicsDevice.Viewport.Width / 2, map.Dimensions.Y / 2 - 35); _camera.MaxPosition = new Vector2(5000, 200); _camera.TrackingBody = _player; _levelProvider = new LevelProvider(Content, _player, _camera); _levelProvider.LoadMaps(GraphicsDevice, "hills.tmx"); _hud = new HUD(Content, _player); _hud.Initialize(); _hud.SetMapWidth(1000); }
public void Draw(SpriteBatch batch, Camera2D camera) { if (RecentlyDamaged && IsAlive) if (_flashTimer.ElapsedMilliseconds > 100) { batch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, _flashWhite, camera.View); _flashTimer.Restart(); } else batch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, camera.View); else batch.Begin(SpriteSortMode.Deferred, null, null, null, null, null, camera.View); Draw(batch); batch.End(); }
public void DrawTiles(SpriteBatch batch, Camera2D camera) { Device.SetRenderTarget(BackBuffer); Device.Clear(new Color(208, 244, 247)); SpriteBatch.Begin(); Vector2 LastTilePositon = Vector2.Zero; var tiles = GetViewableTiles(camera); for (int i = 1; i < 6; i++) { var layer = from t in tiles where t.LayerNumber == i select t; foreach (Tile t in layer) { var position = camera.ConvertWorldToScreen(t.Position); t.Draw(SpriteBatch, position); } } SpriteBatch.End(); Device.SetRenderTarget(null); batch.Draw(BackBuffer, Vector2.Zero, null, Color.White, 0f, Vector2.Zero, 1f, SpriteEffects.None, 1f); }
private List<Tile> GetViewableTiles(Camera2D camera) { Rectangle viewableArea = new Rectangle((int)camera.Position.X - (int)(ViewportDimensions.X / 2), (int)camera.Position.Y - (int)(ViewportDimensions.Y / 2), (int)ViewportDimensions.X, (int)ViewportDimensions.Y); viewableArea.Inflate(200, 100); var viewableTiles = from tile in Tiles where tile.AABB.Intersects(viewableArea) select tile; return viewableTiles.ToList(); }
public LevelProvider(ContentManager manager, Player p, Camera2D cam) { _contentManager = manager; _player = p; _camera = cam; }