public SpriteSheet MultiLoad(string imageResourceFormat, int numSheets)
        {
            SpriteSheet result = new SpriteSheet();
            for (int i = 0; i < numSheets; i++)
            {
                string imageResource = string.Format(imageResourceFormat, i);

                SpriteSheet tmp = Load(imageResource);
                result.Add(tmp);
            }
            return result;
        }
        public SpriteSheet MultiLoad(string imageResourceFormat, int numSheets)
        {
            SpriteSheet result = new SpriteSheet();

            for (int i = 0; i < numSheets; i++)
            {
                string imageResource = string.Format(imageResourceFormat, i);

                SpriteSheet tmp = Load(imageResource);
                result.Add(tmp);
            }
            return(result);
        }
Exemple #3
0
        public SpriteSheet Load(string imageResource, Texture2D test)
        {
            var imageFile = Path.Combine(contentManager.RootDirectory, imageResource);

            //var dataFile = Path.ChangeExtension(imageFile, "txt");
            var dataFile = Path.ChangeExtension(imageResource, "txt");

            //FileStream fileStream = new FileStream(imageResource, FileMode.Open);
            //var texture = Texture2D.FromStream(graphicsDevice, fileStream);
            var texture = test;
            //fileStream.Dispose();


            var dataFileLines = 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], CultureInfo.InvariantCulture),
                    float.Parse(cols[9], CultureInfo.InvariantCulture));
                var sprite = new SpriteFrame(texture, sourceRectangle, size, pivotPoint, isRotated);

                sheet.Add(name, sprite);
            }

            return(sheet);
        }
Exemple #4
0
        public SpriteSheet Load(string imageResource)
        {
            var texture = _contentManager.Load <Texture2D>(imageResource);

            var dataFile = Path.Combine(_contentManager.RootDirectory, Path.ChangeExtension(imageResource, "txt"));

            var dataFileLines = 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 rectangle = 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, rectangle, 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();
            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;
        }