Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Xml;
- using System.Xml.Serialization;
- using System.IO;
- namespace spritesheetanimation
- {
- // Animation frame class
- public class Frame
- {
- // Frame Number
- [XmlAttribute("Num")]
- public int Num;
- // Sub Image X positon in the Sprite Sheet
- [XmlAttribute("X")]
- public int X;
- // Sub Image Y positon in the Sprite Sheet
- [XmlAttribute("Y")]
- public int Y;
- // Sub Image Width
- [XmlAttribute("Width")]
- public int Width;
- // Sub Image Height
- [XmlAttribute("Height")]
- public int Height;
- // The X offset of sub image
- [XmlAttribute("OffSetX")]
- public int OffsetX;
- // The Y offset fo sub image
- [XmlAttribute("OffsetY")]
- public int OffsetY;
- // The duration between two frames
- [XmlAttribute("Duration")]
- public float Duration;
- }
- // Animaiton class to hold the name and frames
- public class Animation
- {
- // Animation Name
- [XmlAttribute("Name")]
- public string Name;
- // Animation Frame Rate
- [XmlAttribute("FrameRate")]
- public int FrameRate;
- public bool Loop;
- public bool Pingpong;
- // The Frames array in an animation
- [XmlArray("Frames"), XmlArrayItem("Frame", typeof(Frame))]
- public Frame[] Frames;
- }
- // The Sprite Texture stores the Sprite Sheet path.fr
- public class SpriteTexture
- {
- // The Sprite Sheet texture file path
- [XmlAttribute("Path")]
- public string Path;
- }
- // Aniamtion Set contains the Sprite Texture and Animaitons.
- [XmlRoot("Animations")]
- public class AnimationSet
- {
- // The sprite texture object
- [XmlElement("Texture", typeof(SpriteTexture))]
- public SpriteTexture SpriteTexture;
- // The animation array in the Animation Set
- [XmlElement("Animation", typeof(Animation))]
- public Animation[] Animations;
- }
- // Sprite Animation Manager class
- public static class SpriteAnimationManager
- {
- public static int AnimationCount;
- // Read the Sprite Sheet Description information from the description xml file
- public static AnimationSet Read(string Filename)
- {
- AnimationSet animationSet = new AnimationSet();
- // Create a XML reader for the sprite sheet animaiton description file
- using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(Filename))
- {
- // Create a XMLSerializer for the AnimationSet
- XmlSerializer serializer = new XmlSerializer(typeof(AnimationSet));
- // Deserialize the Animation Set from the XmlReader to the animation set object
- animationSet = (AnimationSet)serializer.Deserialize(reader);
- }
- // Count the animations to Animation Count
- AnimationCount = animationSet.Animations.Length;
- return animationSet;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement