Пример #1
0
 public Sheep()
 {
     CurrentFrame      = 0;
     ElapsedTime       = 0;
     LookDirectionLeft = false;
     IsBlack           = false;
     _currentAnimation = AnimationManager.AnimationType.Idle;
 }
Пример #2
0
 public void Play(AnimationManager.AnimationType animation)
 {
     if (_currentAnimation == AnimationManager.AnimationType.IdleBlinking &&
         animation == AnimationManager.AnimationType.Idle)
     {
         return;
     }
     if (_currentAnimation != animation)
     {
         _currentAnimation = animation;
         CurrentFrame      = 0;
         ElapsedTime       = 0;
     }
 }
Пример #3
0
        public void Update(GameTime gameTime)
        {
            ElapsedTime += gameTime.ElapsedGameTime.TotalMilliseconds; // adds elapsed time since the last frame

            if (ElapsedTime > AnimationManager.FRAMETIME)
            {
                CurrentFrame++;

                //wenn anzahl an maximalen frames erreicht ist, starte von 0
                if (CurrentFrame == AnimationManager.Reference.TextureListSheep[_currentAnimation].FrameCount)
                {
                    //blinking idle
                    if (_currentAnimation == AnimationManager.AnimationType.IdleBlinking)
                    {
                        _currentAnimation = AnimationManager.AnimationType.Idle;
                    }
                    else if (_currentAnimation == AnimationManager.AnimationType.Idle)
                    {
                        var n = RandomNumber.Between(0, 100);
                        if (n < 20)
                        {
                            Play(AnimationManager.AnimationType.IdleBlinking);
                        }
                    }

                    if (_currentAnimation == AnimationManager.AnimationType.Dying)
                    {
                        CurrentFrame--; //don't loop dying
                    }
                    else
                    {
                        CurrentFrame = 0;
                    }
                }

                ElapsedTime = 0;
            }
        }