示例#1
0
 public virtual void tweenObjects(SpriterAnimation animation)
 {
     foreach (SpriterObject key in objectsToTween.Keys)
     {
         SpriterObject   toTween      = key;
         SpriterKeyFrame frame        = animation.frames[objectsToTween[key]];
         long            time         = frame.getTime();
         SpriterKeyFrame currentFrame = animation.getPreviousFrameForObject
                                            (toTween, time);
         SpriterKeyFrame nextFrame = animation.getNextFrameFor
                                         (toTween, currentFrame, 1);
         if (nextFrame != currentFrame)
         {
             SpriterObject object1 = currentFrame.getObjectFor
                                         (toTween);
             SpriterObject object2 = nextFrame.getObjectFor(toTween
                                                            );
             this.interpolateSpriterObject(toTween, object1, object2, currentFrame.getTime(),
                                           nextFrame.getTime(), time);
         }
         SpriterObject[] objects = new SpriterObject
                                   [frame.getObjects().Length + 1];
         for (int i = 0; i < objects.Length - 1; i++)
         {
             objects[i] = frame.getObjects()[i];
         }
         objects[objects.Length - 1] = toTween;
         frame.setObjects(objects);
     }
 }
 /// <summary>Interpolates the objects of firstFrame and secondFrame.</summary>
 /// <remarks>Interpolates the objects of firstFrame and secondFrame.</remarks>
 /// <param name="currentFrame"></param>
 /// <param name="nextFrame"></param>
 /// <param name="xOffset"></param>
 /// <param name="yOffset"></param>
 protected internal virtual void transformObjects(SpriterKeyFrame
                                                  currentFrame, SpriterKeyFrame nextFrame, float
                                                  xOffset, float yOffset)
 {
     this.rect.set(xOffset, yOffset, xOffset, yOffset);
     if (!this.updateObjects)
     {
         return;
     }
     this.updateTransformedTempObjects(nextFrame.getObjects(), this.tempObjects2);
     this.updateTempObjects(currentFrame.getObjects(), this.nonTransformedTempObjects);
     for (int i = 0; i < this.currenObjectsToDraw; i++)
     {
         if (this.tempObjects[i].active)
         {
             this.tweenObject(this.nonTransformedTempObjects[i], nextFrame.getObjectFor(this.nonTransformedTempObjects
                                                                                        [i]), i, currentFrame.getTime(), nextFrame.getTime());
         }
     }
 }