public void PlayAnimation(string name, float rate) { if (!textures.ContainsKey(name)) { Debug.PrintError("Could not find animation: ", name); return; } current = textures[name]; currentName = name; speed = rate; frame = 0; origin = current.Origin(); }
public override void Update(float time) { if (current == null) { return; } base.Update(time); frame += speed * time; if (frame >= current.framesX * current.framesY) { frame = 0; } if (frame < 0) { frame = (current.framesX * current.framesY) - 1; } current.SetFrame((uint)frame); origin = current.Origin(); batch.Draw(current.texture, dest, current.Final, colour, angle, origin, SpriteEffects.None, 0); }