コード例 #1
0
            public void PlayAnimation()
            {
                AnimationPattern animationPattern = animationPatterns[animationPatternIndex];
                List <AnimationPatternSignal> animationPatternSignals = animationPattern.GetAnimationPatternSignals();

                float animationSpeedModifier = 1;

                if (framesGiven > 0)
                {
                    animationSpeedModifier = animationPattern.GetTotalFrames() / framesGiven;
                }

                int i = 0;

                foreach (AnimationPatternSignal signal in animationPatternSignals)
                {
                    if (i == 0)
                    {
                        overworldObjectCoordinator.animationQueue.Enqueue(Animate(signal.GetSpriteIndex(),
                                                                                  SECONDS_PER_FRAME * signal.GetStartFrame() * animationSpeedModifier));
                    }
                    else
                    {
                        int frameDifference = GetFrameDifference(signal, animationPatternSignals[i - 1]);

                        overworldObjectCoordinator.animationQueue.Enqueue(Animate(signal.GetSpriteIndex(),
                                                                                  SECONDS_PER_FRAME * frameDifference * animationSpeedModifier));
                    }
                    i++;
                }
            }