コード例 #1
0
        private void AddAtlasFolder(SpriterFolder folder, DefaultProviderFactory <ISprite, SoundEffect> factory)
        {
            int id = folder.AtlasId;
            TexturePackerSheet             atlas      = atlases[id];
            Texture2D                      texture    = LoadContent <Texture2D>(FormatPath(atlas.Meta.Image));
            Dictionary <string, ImageInfo> imageInfos = infos[atlas];

            foreach (SpriterFile file in folder.Files)
            {
                ImageInfo info = imageInfos[file.Name];

                // "x", "y" = location in spritesheet, "w", "h" = trimmed unrotated image size
                Size frame = info.Frame;

                // "w", "h" = original image size
                Size source = info.SourceSize;

                // "x", "y" = trimmed offset - pixels trimmed from the top and left
                Size spriteSource = info.SpriteSourceSize;

                Rectangle sourceRectangle;
                bool      rotated = false;

                if (info.Rotated)
                {
                    sourceRectangle = new Rectangle(frame.X, frame.Y, frame.H, frame.W);
                    rotated         = true;
                }
                else
                {
                    sourceRectangle = new Rectangle(frame.X, frame.Y, frame.W, frame.H);
                }

                float trimLeft   = spriteSource.X;
                float trimRight  = source.W - frame.W - spriteSource.X;
                float trimTop    = spriteSource.Y;
                float trimBottom = source.H - frame.H - spriteSource.Y;

                int width  = source.W;
                int height = source.H;

                TexturePackerSprite sprite = new TexturePackerSprite(texture, sourceRectangle, width, height, rotated, trimLeft, trimRight, trimTop, trimBottom);

                factory.SetSprite(Spriter, folder, file, sprite);
            }
        }
コード例 #2
0
 public EffectsManager()
 {
     ExplosionSprite = TexturePacker.GetSprite("ParticlesAtlas", "BigFlare");
 }