Exemple #1
0
        private bool GetSum()
        {
            MainLine.Reverse();
            int[] nums = new int[MainLine.Count()];
            int   j    = 0;

            foreach (int i in MainLine)
            {
                nums[j] = i;
                j++;
            }
            int fen = 0;
            int sun = 0;

            for (int i = 0; i < MainLine.Count(); ++i)
            {
                if (i < (MainLine.Count + 1) / 2)
                {
                    fen += Nodes[MainLine[i]].EdaNum + 1;
                }
                else
                {
                    sun += Nodes[MainLine[i]].EdaNum + 1;
                }
            }
            return(fen > sun);
        }
Exemple #2
0
        private static void loadMainline(XmlNode mainline
                                         , Animation animation)
        {
            MainLine main = new MainLine
                                ();

            animation.setMainline(main);
            loadMainlineKeys(XmlReader.getChildrenByName(mainline, "key"), main);
        }
Exemple #3
0
        private void SearchTargetNode2(int Target, int Dest)
        {
            int nodeindex = Dest;

            while (nodeindex != Target)
            {
                MainLine.Add(nodeindex);
                Nodes[nodeindex].IsMain = true;
                nodeindex = Nodes[nodeindex].Before;
            }
            Nodes[Target].IsMain = true;
            MainLine.Add(Target);
        }
Exemple #4
0
 private static void loadMainlineKeys(List <XmlNode
                                            > keys, MainLine main)
 {
     for (int i = 0; i < keys.Count; i++)
     {
         XmlNode k   = keys[i];
         Key     key = new Key();
         key.setId(XmlReader.getInt(k, "id"));
         int time = XmlReader.getInt(k, "time", -1);
         if (time == -1)
         {
             key.setTime(0);
         }
         else
         {
             key.setTime(System.Convert.ToInt64(time));
         }
         main.getKey().Add(key);
         loadRefs(XmlReader.getChildrenByName(k, "object_ref"), XmlReader.getChildrenByName(k, "bone_ref"), key);
     }
 }
Exemple #5
0
        //import Com.Brashmonkey.Spriter.converters.SpriterObjectConverter;
        //import AnimationObject;
        //final private SpriterObjectConverter objectConverter = new SpriterObjectConverter();
        public virtual SpriterAnimation buildAnimation(
            Animation animation)
        {
            MainLine         mainline  = animation.getMainline();
            IList <TimeLine> timeLines =
                animation.getTimeline();
            IList <Key> keyFrames = mainline
                                    .getKey();

            bonesToTween = new Dictionary <SpriterBone
                                           , int>();
            objectsToTween = new Dictionary <SpriterObject
                                             , int>();
            SpriterAnimation spriterAnimation = new SpriterAnimation(animation.getId(), animation.getName(), animation.getLength());

            for (int k = 0; k < keyFrames.Count; k++)
            {
                Key mainlineKey = keyFrames[k];
                IList <SpriterObject> tempObjects
                    = new List <SpriterObject
                                >();
                IList <SpriterBone> tempBones
                    = new List <SpriterBone
                                >();
                SpriterKeyFrame frame = new SpriterKeyFrame
                                            ();
                frame.setTime(mainlineKey.getTime());
                frame.setId(mainlineKey.getId());
                foreach (BoneRef boneRef in mainlineKey.getBoneRef())
                {
                    TimeLine    timeline    = timeLines[boneRef.getTimeline()];
                    Key         timelineKey = timeline.getKey()[boneRef.getKey()];
                    SpriterBone bone        = boneMerger.merge(boneRef, timelineKey
                                                               );
                    bone.setName(timeline.getName());
                    if (mainlineKey.getTime() != timelineKey.getTime())
                    {
                        bonesToTween.Add(bone, k);
                    }
                    else
                    {
                        tempBones.Add(bone);
                    }
                }
                //}
                foreach (AnimationObjectRef objectRef in mainlineKey.getObjectRef
                             ())
                {
                    TimeLine timeline    = timeLines[objectRef.getTimeline()];
                    Key      timelineKey = timeline.getKey()[objectRef.getKey()
                                           ];
                    SpriterObject @object = objectMerger.merge(objectRef
                                                               , timelineKey);
                    @object.setName(timeline.getName());
                    if (mainlineKey.getTime() != timelineKey.getTime())
                    {
                        objectsToTween.Add(@object, k);
                    }
                    else
                    {
                        tempObjects.Add(@object);
                    }
                }
                //}
                SpriterObject[] objArray = new SpriterObject[tempObjects.Count];
                tempObjects.CopyTo(objArray, 0);
                frame.setObjects(objArray);
                SpriterBone[] boneArray = new SpriterBone[tempBones.Count];
                tempBones.CopyTo(boneArray, 0);
                frame.setBones(boneArray);
                spriterAnimation.frames.Add(frame);
            }
            this.tweenBones(spriterAnimation);
            this.tweenObjects(spriterAnimation);
            return(spriterAnimation);
        }