Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Simple Sprites & bone-like Transformations for MonoGame projects.

What is it

This mini-lib implements basic sprite class with transformations, that also support hierarchy and bone-like transformation inheritance.

In simple words, this provide the very basics needed to create bone-based 2d animations.

Live example

To see a live example, open and execute the solution in this repo.

Using MonoGame-Sprites


To install the lib you can use NuGet:

Install-Package MonoGame.Sprites

Or you can manually copy the source files from MonoSprites/Source/ into your project.

Main objects

This lib contains 4 main classes you should know:


Provide the basic API and functionality of any renderable entity. If you want to create your own custom sprites, inherit from it.


An entity that doesn't have any graphic representation of its own, but hold transformations to inherit to its children. Containers are good method to group together multiple sprites. For example, you can use it to scale or move a group of renderables evenly.


A simple renderable image with transformation and optional children.


A set of transformation properties, such as position, scale, rotation, zindex, color, etc..

Transformations class also implements the functionality to inherit transformations from parent to child instances. Normally you don't need to use this class directly, as it is used internally.

How to use

To create a new sprite:

MonoSprites.Sprite sprite = new MonoSprites.Sprite(Content.Load<Texture2D>("sprite_texture"));

And to draw it:


To create a container and use it:

MonoSprites.Container container = new MonoSprites.Container();
MonoSprites.Sprite sprite = new MonoSprites.Sprite(Content.Load<Texture2D>("sprite_texture"), parent: container);
// or: container.AddChild(Sprite);

Now every transformation you apply on the container will be inherited to the child sprite.

For more info you can check out the code (with focus on the Renderable and Sprite public API), or read the automatically generated doc file in MonoSprites/Help/.


MonoGame-Sprites is distributed with the permissive MIT License. For more info, check out the LICENSE file in this repo.