Beispiel #1
0
        public Point Run(TimeSpan duration)
        {
            AnimationCueDirectionEnum dir = _currentCue.Next;
            // if this is the case then we never have to do time calcs
            if (dir == AnimationCueDirectionEnum.StayHere)
            {
                _isEnd = true;
                return _currentCue.Point;
            }

            while (duration.Ticks >= _remainingTimeAtThisCue.Ticks)
            {
                duration = duration.Subtract(_remainingTimeAtThisCue);
                // move to next
                if (dir == AnimationCueDirectionEnum.MoveToNext)
                {
                    AnimationCue cue = _subject.GetNextCue(_currentCue);
                    _currentCue = cue;
                }
                else if (dir == AnimationCueDirectionEnum.MoveToBeginning)
                {
                    _currentCue = _subject.First;
                }
                _remainingTimeAtThisCue = _currentCue.Duration;
                dir = _currentCue.Next;
            }

            _remainingTimeAtThisCue = _remainingTimeAtThisCue.Subtract(duration);
            return _currentCue.Point;
        }
Beispiel #2
0
 public AnimationRunner(Animation subject)
 {
     this._subject = subject;
     _currentCue = subject.First;
     _remainingTimeAtThisCue = _currentCue.Duration;
     _isEnd = false;
 }
Beispiel #3
0
        public static Animation CreateAnimation(Controller controller, string path, string prefix, string suffix,
            string[] nos, Point pt, Size sz,
            AnimationCueDirectionEnum lastCueDirection, int duration)
        {
            AnimationCue[] cues = new AnimationCue[nos.Length];
            for (int i = 0; i < nos.Length; i++)
            {
                AnimationCueDirectionEnum cueDirection = AnimationCueDirectionEnum.MoveToNext;
                if (i == nos.Length - 1) cueDirection = lastCueDirection;

                cues[i] = new AnimationCue(controller.TextureStore.GetTexture(controller.Device, string.Format(@"{0}\{1}{2}{3}.png", path, prefix, nos[i], suffix)),
                    cueDirection, BasicEngine.TurnTimeSpan.Ticks * duration, pt, sz);
            }

            Animation animation = new Animation(cues);
            return animation;
        }
Beispiel #4
0
 public AnimationCue GetNextCue(AnimationCue cue)
 {
     AnimationCue cue2 = _cues[cue._arrayIndex + 1];
     return cue2;
 }