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); } }
public EffectsManager() { ExplosionSprite = TexturePacker.GetSprite("ParticlesAtlas", "BigFlare"); }