public void UpdateFrameTile(float elapsed, ref Position position, ref SpriteEffects spriteEffects__1, ref TileState tileState)
        {
            float TimePerFrame = 0;
            TimePerFrame = frameRate + sequence.frames[m_frameIndex].delay;
            //0.1
            //TimePerFrame = 0.9f + sequence.frames[frameIndex].delay; //0.1
            TotalElapsed += elapsed;

            if (TotalElapsed > TimePerFrame)
            {
                //Play Sound
                sequence.frames[m_frameIndex].PlaySound();

                m_frameIndex = Math.Min(m_frameIndex + 1, Frames.Count - 1);
                TotalElapsed -= TimePerFrame;

                if (sequence.frames[m_frameIndex].type != Enumeration.TypeFrame.SPRITE)
                {
                    //COMMAND
                    string[] aCommand = sequence.frames[m_frameIndex].name.Split('|');
                    string[] aParameter = sequence.frames[m_frameIndex].parameter.Split('|');
                    for (int x = 0; x <= aCommand.Length - 1; x++)
                    {
                        if (aCommand[x] == Enumeration.TypeCommand.ABOUTFACE.ToString())
                        {
                            if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                            {
                                spriteEffects__1 = SpriteEffects.None;
                            }
                            else
                            {
                                spriteEffects__1 = SpriteEffects.FlipHorizontally;
                            }
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.GOTOFRAME.ToString())
                        {
                            string par = aParameter[x];
                            int result = sequence.frames.FindIndex((Frame f) => f.name == par);
                            m_frameIndex = result;
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.GOTOSEQUENCE.ToString())
                        {
                            string par = aParameter[x];
                            Sequence result = lsequence.Find((Sequence s) => s.name == par);
                            sequence = result;
                            m_frameIndex = 0;
                            tileState.Add(StateTileElement.Parse(par));
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.IFGOTOSEQUENCE.ToString())
                        {
                            string par = string.Empty;
                            if (tileState.Value().IfTrue == true)
                            {
                                par = aParameter[0];
                            }
                            else
                            {
                                par = aParameter[1];
                            }

                            Sequence result = lsequence.Find((Sequence s) => s.name == par);
                            sequence = result;
                            m_frameIndex = 0;
                            tileState.Add(StateTileElement.Parse(par));

                        }
                    }
                }

                int flip = 0;
                if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                {
                    flip = 1;
                }
                else
                {
                    flip = -1;
                }

                position.Value = new Vector2(position.X + (sequence.frames[m_frameIndex].xOffSet * flip), position.Y + sequence.frames[m_frameIndex].yOffSet);
            }
            else if (firstTime == true)
            {
                int flip = 0;
                if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                {
                    flip = 1;
                }
                else
                {
                    flip = -1;
                }

                position.Value = new Vector2(position.X + (sequence.frames[m_frameIndex].xOffSet * flip), position.Y + sequence.frames[m_frameIndex].yOffSet);
                firstTime = false;

                //Play Sound

                sequence.frames[m_frameIndex].PlaySound();
            }
        }
        public void UpdateFrameItem(float elapsed, ref Position position, ref SpriteEffects spriteEffects__1, ref TileState itemState)
        {
            float TimePerFrame = 0;

            TimePerFrame = frameRate + sequence.frames[m_frameIndex].delay;
            //0.1
            //TimePerFrame = 0.9f + sequence.frames[frameIndex].delay; //0.1
            TotalElapsed += elapsed;


            if (TotalElapsed > TimePerFrame)
            {
                //Play Sound
                sequence.frames[m_frameIndex].PlaySound();


                m_frameIndex  = Math.Min(m_frameIndex + 1, Frames.Count - 1);
                TotalElapsed -= TimePerFrame;



                if (sequence.frames[m_frameIndex].type != Enumeration.TypeFrame.SPRITE)
                {
                    //COMMAND
                    string[] aCommand   = sequence.frames[m_frameIndex].name.Split('|');
                    string[] aParameter = sequence.frames[m_frameIndex].parameter.Split('|');
                    for (int x = 0; x <= aCommand.Length - 1; x++)
                    {
                        if (aCommand[x] == Enumeration.TypeCommand.ABOUTFACE.ToString())
                        {
                            if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                            {
                                spriteEffects__1 = SpriteEffects.None;
                            }
                            else
                            {
                                spriteEffects__1 = SpriteEffects.FlipHorizontally;
                            }
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.GOTOFRAME.ToString())
                        {
                            string par    = aParameter[x];
                            int    result = sequence.frames.FindIndex((Frame f) => f.name == par);
                            m_frameIndex = result;
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.GOTOSEQUENCE.ToString())
                        {
                            string   par    = aParameter[x];
                            Sequence result = lsequence.Find((Sequence s) => s.name == par);
                            sequence     = result;
                            m_frameIndex = 0;
                            itemState.Add(StateTileElement.Parse(par));
                        }
                        else if (aCommand[x] == Enumeration.TypeCommand.IFGOTOSEQUENCE.ToString())
                        {
                            string par = string.Empty;
                            if (itemState.Value().IfTrue == true)
                            {
                                par = aParameter[0];
                            }
                            else
                            {
                                par = aParameter[1];
                            }

                            Sequence result = lsequence.Find((Sequence s) => s.name == par);
                            sequence     = result;
                            m_frameIndex = 0;
                            itemState.Add(StateTileElement.Parse(par));
                        }
                    }
                }

                int flip = 0;
                if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                {
                    flip = 1;
                }
                else
                {
                    flip = -1;
                }

                position.Value = new Vector2(position.X + (sequence.frames[m_frameIndex].xOffSet * flip), position.Y + sequence.frames[m_frameIndex].yOffSet);
            }
            else if (firstTime == true)
            {
                //Play Sound
                sequence.frames[m_frameIndex].PlaySound();


                int flip = 0;
                if (spriteEffects__1 == SpriteEffects.FlipHorizontally)
                {
                    flip = 1;
                }
                else
                {
                    flip = -1;
                }

                position.Value = new Vector2(position.X + (sequence.frames[m_frameIndex].xOffSet * flip), position.Y + sequence.frames[m_frameIndex].yOffSet);
                firstTime      = false;
            }
        }