Esempio n. 1
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);

            var anim  = _walkingAnimation.GetAnimationForOrientation(Orientation);
            var sheet = anim.AnimatedSpriteSheets.FirstOrDefault();

            if (!IsMoving)
            {
                sheet.Reset();
            }
            else
            {
                sheet.Update(gameTime);
            }

            if (ActiveActions.Any())
            {
                foreach (var act in ActiveActions)
                {
                    act.Action(gameTime, act);
                }

                return;
            }

            _currentAnimationSheet = anim.AnimatedSpriteSheets.FirstOrDefault();
        }
Esempio n. 2
0
        private void Eat(GameTime gameTime, LivingAction action)
        {
            var anim  = _eatingAnimation.GetAnimationForOrientation(Orientation);
            var sheet = anim.AnimatedSpriteSheets.FirstOrDefault();

            sheet.Update(gameTime);

            if (sheet.HasEnded)
            {
                action.IsRunning = false;
                sheet.Reset();

                _currentAnimationSheet = anim.AnimatedSpriteSheets.FirstOrDefault();
                _currentAnimationSheet.Reset();
                return;
            }

            _currentAnimationSheet = sheet;
        }