Exemple #1
0
        public bool SetFrame(int number)
        {
            if (number >= TotalFrames)
            {
                return(false);
            }

            CurrentFrame = number;
            Finished     = CurrentFrame == TotalFrames - 1;

            if (CurrentNestedAnimatedSprite != null)
            {
                RemoveChild(CurrentNestedAnimatedSprite);
                CurrentNestedAnimatedSprite = null;
            }
            if (Data.Frames[(int)CurrentFrame] is AnimatedSpriteDataReference)
            {
                Model.Visible = false;
                // TODO - instead of re-creating AnimateSprites, loop through Frames and create Array filled with all the Nested AnimatedSprites.
                CurrentNestedAnimatedSprite          = new AnimatedSprite(Game, Data.Frames[(int)CurrentFrame].Data);
                CurrentNestedAnimatedSprite.Position = Data.Frames[(int)CurrentFrame].Origin;
                AddChild(CurrentNestedAnimatedSprite);

                return(false);
            }
            else
            {
                Model.Visible = true;
            }

            if (Data.Frames[(int)CurrentFrame] is int)
            {
                CurrentFrameInfo = Data.Frames[Data.Frames[(int)CurrentFrame]];
            }
            else
            {
                CurrentFrameInfo = Data.Frames[(int)CurrentFrame];
            }

            Sprite.TextureRect = GetIntRect();
            Sprite.Origin      = CurrentFrameInfo.Origin;

            return(true);
        }
        public bool SetFrame(int number)
        {
            if (number >= TotalFrames)
                return false;

            CurrentFrame = number;
            Finished = CurrentFrame == TotalFrames-1;

            if (CurrentNestedAnimatedSprite != null)
            {
                RemoveChild(CurrentNestedAnimatedSprite);
                CurrentNestedAnimatedSprite = null;
            }
            if (Data.Frames[(int)CurrentFrame] is AnimatedSpriteDataReference)
            {
                Model.Visible = false;
                // TODO - instead of re-creating AnimateSprites, loop through Frames and create Array filled with all the Nested AnimatedSprites.
                CurrentNestedAnimatedSprite = new AnimatedSprite(Game, Data.Frames[(int)CurrentFrame].Data);
                CurrentNestedAnimatedSprite.Position = Data.Frames[(int)CurrentFrame].Origin;
                AddChild(CurrentNestedAnimatedSprite);

                return false;
            }
            else
                Model.Visible = true;

            if (Data.Frames[(int)CurrentFrame] is int)
                CurrentFrameInfo = Data.Frames[Data.Frames[(int)CurrentFrame]];
            else
                CurrentFrameInfo = Data.Frames[(int)CurrentFrame];

            Sprite.TextureRect = GetIntRect();
            Sprite.Origin = CurrentFrameInfo.Origin;

            return true;
        }