![]() |
VOOZH | about |
dotnet add package KinsonDigital.VelaptorAseprite --version 1.0.0-preview.1
NuGet\Install-Package KinsonDigital.VelaptorAseprite -Version 1.0.0-preview.1
<PackageReference Include="KinsonDigital.VelaptorAseprite" Version="1.0.0-preview.1" />
<PackageVersion Include="KinsonDigital.VelaptorAseprite" Version="1.0.0-preview.1" />Directory.Packages.props
<PackageReference Include="KinsonDigital.VelaptorAseprite" />Project file
paket add KinsonDigital.VelaptorAseprite --version 1.0.0-preview.1
#r "nuget: KinsonDigital.VelaptorAseprite, 1.0.0-preview.1"
#:package KinsonDigital.VelaptorAseprite@1.0.0-preview.1
#addin nuget:?package=KinsonDigital.VelaptorAseprite&version=1.0.0-preview.1&prereleaseInstall as a Cake Addin
#tool nuget:?package=KinsonDigital.VelaptorAseprite&version=1.0.0-preview.1&prereleaseInstall as a Cake Tool
IContentManager for familiar content loadingInstall via NuGet Package Manager:
dotnet add package KinsonDigital.VelaptorAseprite
Or via Package Manager Console:
Install-Package KinsonDigital.VelaptorAseprite
Export your sprite sheet from Aseprite:
.png and .json files are saved to your Content folderusing VelaptorAseprite;
using Velaptor.Content;
public class MyScene : SceneBase
{
private IContentManager contentManager;
private IAsepriteAtlas? atlasData;
public override void LoadContent()
{
contentManager = ContentManager.Create();
// Load the Aseprite atlas data
atlasData = contentManager.LoadAsepriteAtlas("my-character");
// Start the animation
atlasData.Play();
}
public override void Update(FrameTime frameTime)
{
// Update the animation each frame
atlasData?.Update(frameTime);
}
public override void Render()
{
if (atlasData is null)
{
return;
}
var frame = this.atlasData.GetCurrentFrame();
var srcRect = frame.Bounds;
var destRect = new Rectangle(0, 0, (int)(this.atlasData.Texture.Width ?? 0), (int)(this.atlasData.Texture.Height ?? 0));
destRect.X = WindowCenter.X;
destRect.Y = WindowCenter.Y;
this.textureRenderer.Render(
this.atlasData.Texture,
srcRect,
destRect,
RenderScale,
0f,
Color.White,
RenderEffects.None);
}
public override void UnloadContent()
{
if (atlasData is not null)
{
contentManager.UnloadAsepriteAtlas(atlasData);
}
}
}
// Load and play a character walk cycle
var walkCycle = contentManager.LoadAsepriteAtlas("character-walk");
walkCycle.LoopingBehavior = LoopingBehavior.Infinite;
walkCycle.Play();
// In your update loop
walkCycle.Update(frameTime);
// Play a spell effect 3 times then stop
var spellEffect = contentManager.LoadAsepriteAtlas("spell-cast");
spellEffect.LoopingBehavior = LoopingBehavior.Count;
spellEffect.MaxLoops = 3;
spellEffect.Play();
// Play an animation backward
var rewindAnim = contentManager.LoadAsepriteAtlas("door-open");
rewindAnim.Direction = AnimationDirection.Backward;
rewindAnim.Play();
// Make animation play twice as fast
var fastAnim = contentManager.LoadAsepriteAtlas("fast-action");
fastAnim.SetAnimationSpeed(50); // 50ms per frame instead of exported Aseprite default
fastAnim.Play();
public class Player
{
private IAsepriteAtlas playerAtlasData;
private readonly IAppInput<KeyboardState> keyboard;
private KeyboardState prevKeyState;
public Player() => this.keyboard = HardwareFactory.GetKeyboard();
public override void LoadContent()
{
// Load the main player animation atlas
this.playerAtlasData = contentManager.LoadAsepriteAtlas("main-player", "player-idle");
// Set the initial animation
this.playerAtlasData.Play();
this.playerAtlasData.LoopingBehavior = LoopingBehavior.Infinite;
}
public void Update(FrameTime frameTime)
{
var currentKeyState = this.keyboard.GetState();
if (currentKeyState.IsKeyDown(KeyCode.Left) || currentKeyState.IsKeyDown(KeyCode.Right))
{
this.playerAtlasData.LoopingBehavior = LoopingBehavior.Infinite;
this.playerAtlasData.AnimationName = "player-walk";
}
if (currentKeyState.IsKeyUp(KeyCode.Space) && this.prevKeyState.IsKeyDown(KeyCode.Space))
{
this.playerAtlasData.LoopingBehavior = LoopingBehavior.None;
this.playerAtlasData.AnimationName = "player-jump";
}
this.prevKeyState = currentKeyState;
this.playerAtlasData.Update(frameTime);
}
public override void Render()
{
// ... render code here
}
}
Made with ❤️ for indie game developers
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-preview.1 | 490 | 2/26/2026 |