public Jumper() { Collision = CollisionType.A; MaxVelocity = new Vector2 { X = 300, Y = 450 }; Animations = new AnimationSheet(@"Textures\player", 64, 64); Animations.Add("idle", 1f, true, 0, 1); Animations.Add("run", 0.07f, true, 12, 13, 14, 15, 16, 17, 18, 19, 20); Animations.Add("jump", 0.09f, false, 21, 22); Animations.Add("wallSlide", 1f, true, 2); Index = PlayerIndex.One; // our player only has horizontal friction Friction = new Vector2(2000, 0); Settings["_feDrawBox"] = "true"; BoundingBox = new HitBox { Height = 64, Width = 64 }; }
public void DrawMap(SpriteBatch spriteBatch) { if (_tileSetTextureIsDirty) { TileSetTexture = ContentCacheManager.GetTexture(TileSetTexturePath); TileSheet = new AnimationSheet(TileSetTexture, TileSize, TileSize); // add the animations for (int frame = 0; frame < TileSheet.TotalFrames; frame++) { TileSheet.Add(frame, 1f, false, frame); } } if (TileSetTexture != null) { MapData.EachCell((cell, tile) => { // adjust the vector position according to the tilesize cell *= TileSize; // only draw tiles that have data if (tile > -1) { TileSheet[tile].Draw(spriteBatch, cell, Color.White * Opacity); } if (DrawGrid) { var frame = new Rectangle((int)cell.X, (int)cell.Y, TileSize, TileSize); var whiteTexture = new Texture2D(spriteBatch.GraphicsDevice, 1, 1); whiteTexture.SetData(new Color[] { Color.White }); spriteBatch.Draw(whiteTexture, new Rectangle(frame.Left, frame.Top, frame.Width, 1), Color.White); spriteBatch.Draw(whiteTexture, new Rectangle(frame.Left, frame.Bottom, frame.Width, 1), Color.White); spriteBatch.Draw(whiteTexture, new Rectangle(frame.Left, frame.Top, 1, frame.Height), Color.White); spriteBatch.Draw(whiteTexture, new Rectangle(frame.Right, frame.Top, 1, frame.Height + 1), Color.White); } }); } }