// <param name="position">This should be where you want the pivot point of the sprite image to be rendered.</param> public void Draw(SpriteFrame sprite, Vector2 position, Color? color = null, float rotation = 0, float scale = 1, SpriteEffects spriteEffects = SpriteEffects.None) { Vector2 origin = sprite.Origin; if (sprite.IsRotated) { rotation -= ClockwiseNinetyDegreeRotation; switch (spriteEffects) { case SpriteEffects.FlipHorizontally: spriteEffects = SpriteEffects.FlipVertically; break; case SpriteEffects.FlipVertically: spriteEffects = SpriteEffects.FlipHorizontally; break; } } switch (spriteEffects) { case SpriteEffects.FlipHorizontally: origin.X = sprite.SourceRectangle.Width - origin.X; break; case SpriteEffects.FlipVertically: origin.Y = sprite.SourceRectangle.Height - origin.Y; break; } this.spriteBatch.Draw( texture: sprite.Texture, position: position, sourceRectangle: sprite.SourceRectangle, color: color, rotation: rotation, origin: origin, scale: new Vector2(scale, scale), effects: spriteEffects); }
public SpriteSheet Load(string imageResource) { var texture = this.contentManager.Load<Texture2D>(imageResource); var dataFile = Path.Combine( this.contentManager.RootDirectory, Path.ChangeExtension(imageResource, "txt")); var dataFileLines = this.ReadDataFile(dataFile); var sheet = new SpriteSheet(); CultureInfo ci = (CultureInfo)CultureInfo.CurrentCulture.Clone(); ci.NumberFormat.CurrencyDecimalSeparator = "."; foreach ( var cols in from row in dataFileLines where !string.IsNullOrEmpty(row) && !row.StartsWith("#") select row.Split(';')) { if (cols.Length != 10) { throw new InvalidDataException("Incorrect format data in spritesheet data file"); } var isRotated = int.Parse (cols [1]) == 1; var name = cols[0]; var sourceRectangle = new Rectangle( int.Parse(cols[2]), int.Parse(cols[3]), int.Parse(cols[4]), int.Parse(cols[5])); var size = new Vector2( int.Parse(cols[6]), int.Parse(cols[7])); var pivotPoint = new Vector2( float.Parse(cols[8], NumberStyles.Any, ci), float.Parse(cols[9], NumberStyles.Any, ci)); var sprite = new SpriteFrame(texture, sourceRectangle, size, pivotPoint, isRotated); sheet.Add(name, sprite); } return sheet; }
public SpriteSheet Load(string imageResource) { var texture = this.contentManager.Load <Texture2D>(imageResource); var dataFile = Path.Combine( this.contentManager.RootDirectory, Path.ChangeExtension(imageResource, "txt")); var dataFileLines = this.ReadDataFile(dataFile); var sheet = new SpriteSheet(); foreach ( var cols in from row in dataFileLines where !string.IsNullOrEmpty(row) && !row.StartsWith("#") select row.Split(';')) { if (cols.Length != 10) { throw new InvalidDataException("Incorrect format data in spritesheet data file"); } var isRotated = int.Parse(cols [1]) == 1; var name = cols[0]; var sourceRectangle = new Rectangle( int.Parse(cols[2]), int.Parse(cols[3]), int.Parse(cols[4]), int.Parse(cols[5])); var size = new Vector2( int.Parse(cols[6]), int.Parse(cols[7])); var pivotPoint = new Vector2( float.Parse(cols[8]), float.Parse(cols[9])); var sprite = new SpriteFrame(texture, sourceRectangle, size, pivotPoint, isRotated); sheet.Add(name, sprite); } return(sheet); }
public void Draw(SpriteFrame sprite, Vector2 position, float layerDepth, Color?color = null, float rotation = 0, float scale = 1, SpriteEffects spriteEffects = SpriteEffects.None) { Vector2 origin = sprite.Origin; if (sprite.IsRotated) { rotation -= ClockwiseNinetyDegreeRotation; switch (spriteEffects) { case SpriteEffects.FlipHorizontally: spriteEffects = SpriteEffects.FlipVertically; break; case SpriteEffects.FlipVertically: spriteEffects = SpriteEffects.FlipHorizontally; break; } } switch (spriteEffects) { case SpriteEffects.FlipHorizontally: origin.X = sprite.SourceRectangle.Width - origin.X; break; case SpriteEffects.FlipVertically: origin.Y = sprite.SourceRectangle.Height - origin.Y; break; } this.spriteBatch.Draw(sprite.Texture, position, sprite.SourceRectangle, color ?? Color.White, rotation, origin, new Vector2(scale, scale), spriteEffects, layerDepth); }
public void Add(string name, SpriteFrame sprite) { spriteList.Add(name, sprite); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. this.spriteBatch = new SpriteBatch(GraphicsDevice); this.spriteRender = new SpriteRender(this.spriteBatch); var spriteSheetLoader = new SpriteSheetLoader(this.Content); this.spriteSheet = spriteSheetLoader.Load("CapGuyDemo.png"); this.backgroundSprite = this.spriteSheet.Sprite(TexturePackerMonoGameDefinitions.CapGuyDemo.Background); this.centreScreen = new Vector2 (this.GraphicsDevice.Viewport.Width / 2, this.GraphicsDevice.Viewport.Height / 2); this.InitialiseAnimationManager(); }
public void Add(string name, SpriteFrame sprite) { spriteList.Add(name, sprite); }
public void Add(string name, SpriteFrame sprite) { sprite.Name = name; spriteList.Add(name, sprite); SourceRectangles.Add(sprite.SourceRectangle); }