예제 #1
0
        /// <summary>
        /// Rafraichi un calque
        /// </summary>
        /// <param name="layer"></param>
        /// <param name="main"></param>
        private void RefreshLayer(VO_Layer layer, bool main, bool moveOrAnimation)
        {
            //Decors
            foreach (VO_StageDecor item in layer.ListDecors)
            {
                Draw(SpriteManager.GetScreenSprite(item.Id));
            }

            //Animations
            foreach (VO_StageAnimation item in layer.ListAnimations)
            {
                VO_AnimatedSprite anim = _Service.DrawAnimated(item);
                if (anim != null)
                {
                    Draw(anim, _Service.GetRatioFromMatrix(new Point(item.Location.X, item.Location.Y), _ProjectData.Resolution.MatrixPrecision), moveOrAnimation);
                }
                if (moveOrAnimation && anim.CurrentSpriteIndex == 0 && anim.ReadyToExecScript)
                {
                    _Service.ExecuteAnimationScript(item, Enums.TriggerExecutionType.BeginingAnimation);
                    anim.ReadyToExecScript = false;
                }
                else if (moveOrAnimation && anim.CurrentSpriteIndex == anim.SpritesCount - 1 && anim.ReadyToExecScript)
                {
                    _Service.ExecuteAnimationScript(item, Enums.TriggerExecutionType.EndingAnimation);
                    anim.ReadyToExecScript = false;
                }
            }
        }