public Sprite(ISpriteData data) { this.SpriteData = data; // Sprite is initialized with current state is stop state = SpriteState.STOPPED; // Init with first frame nextFrame = DEFAULT_FRAME; this.currentFrame = this.SpriteData.Metadata.Frames[nextFrame]; // Init with smallest time lastTime = new TimeSpan(-100000000); }
private static void EditSprite(ISpriteData newSprite, Sprite origSprite, FileStream fileStream, int PrevTextureAmount) { fileStream.Position = origSprite.Offset + 4; fileStream.Write(newSprite.SPRTData, 0, newSprite.SPRTData.Length); for (int i = 0; i < origSprite.TPAGAmount; i++) { fileStream.Position = origSprite.TPAGOffsets[i]; for (int j = 0; j < newSprite.TPAGData.GetLength(1) - 2; j++) { fileStream.WriteByte(newSprite.TPAGData[i, j]); } fileStream.WriteByte((byte)((newSprite.TPAGData[i, 20] - 4) + PrevTextureAmount)); } }
public AnimatedSprite(ISpriteData <T> spriteData) { _texture = LoadTexture(spriteData.TextureFileName); _animations = new Dictionary <T, SpriteAnimation>(); spriteData.RegisterAnimations(this); }