예제 #1
0
        public static void AddKeyframe(string sequenceName, IKeyframe newKeyframe)
        {
            AnimationSequence.AnimationSequenceType sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Transformation;
            if (newKeyframe is SpriteSheetKeyframe)
            {
                sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.SpriteSheet;
            }
            if (newKeyframe is ColourKeyframe)
            {
                sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Colour;
            }
            if (newKeyframe is SkeletalKeyframe)
            {
                sequenceTypeFromKeyframe = AnimationSequence.AnimationSequenceType.Skeletal;
            }

            if (!Sequences.ContainsKey(sequenceName))
            {
                AddSequence(sequenceName, sequenceTypeFromKeyframe, false);
            }

            if (Sequences[sequenceName].SequenceType == sequenceTypeFromKeyframe)
            {
                Sequences[sequenceName].Keyframes.Add(newKeyframe);
            }
        }
예제 #2
0
        public static void AddSequence(string name, AnimationSequence.AnimationSequenceType sequenceType, bool loops)
        {
            AnimationSequence newSequence = new AnimationSequence(sequenceType);

            newSequence.Loops = loops;

            Sequences.Add(name, newSequence);
        }
예제 #3
0
        public static void AddSequence(XElement xmlSequenceData)
        {
            string sequenceName = "";

            AnimationSequence.AnimationSequenceType sequenceType = AnimationSequence.AnimationSequenceType.Transformation;

            if (!Sequences.ContainsKey(xmlSequenceData.Attribute("name").Value))
            {
                foreach (AnimationSequence.AnimationSequenceType item in Enum.GetValues(typeof(AnimationSequence.AnimationSequenceType)))
                {
                    if (item.ToString().ToLower().Equals(xmlSequenceData.Attribute("type").Value.Trim().ToLower()))
                    {
                        sequenceName = xmlSequenceData.Attribute("name").Value;
                        sequenceType = item;

                        AddSequence(sequenceName, item, xmlSequenceData.Attribute("loops").Value == "yes");
                        break;
                    }
                }
            }

            if (!string.IsNullOrEmpty(sequenceName))
            {
                foreach (XElement frame in xmlSequenceData.Element("keyframes").Elements())
                {
                    switch (sequenceType)
                    {
                    case AnimationSequence.AnimationSequenceType.Transformation:
                        AddTransformationKeyframe(sequenceName, frame);
                        break;

                    case AnimationSequence.AnimationSequenceType.SpriteSheet:
                        AddSpriteSheetKeyframe(sequenceName, frame);
                        break;

                    case AnimationSequence.AnimationSequenceType.Colour:
                        AddColourKeyframe(sequenceName, frame);
                        break;

                    case AnimationSequence.AnimationSequenceType.Skeletal:
                        AddSkeletalKeyframe(sequenceName, frame);
                        break;
                    }
                }
            }
        }