示例#1
0
        /// <param name="forceRestart">If true, the animation will be restarted if it's already the active one.</param>
        public void SetAnimation(string name, bool forceRestart = false)
        {
            if (!SpriteDefinition.AnimationDefinitions.ContainsKey(name))
            {
                Console.Error.WriteLine("Error: SpriteDefinition does not contain an animation called \"" + name + "\"!");
                return;
            }

            var animDefinition = SpriteDefinition.AnimationDefinitions[name];

            animation.SetDefinition(animDefinition);
        }
示例#2
0
        /// <summary>Reloads the texture and sprite definition from disk.</summary>
        public void Reload()
        {
            var currentAnimationFrame = animation.GetCurrentFrame();
            var currentAnimationName  = animation.Definition.Name;
            var currentPlayOnce       = animation.GetPlayOnce();

            var reloadedSprite = Sprite.LoadSprite(spritePath);

            Texture2D        = reloadedSprite.Texture2D;
            SpriteDefinition = reloadedSprite.SpriteDefinition;
            var oldAnim = animation;

            animation = reloadedSprite.animation;
            animation.SetDefinition(SpriteDefinition.AnimationDefinitions[currentAnimationName], false);
            animation.SetFrame(currentAnimationFrame);
            animation.SetPlayOnce(currentPlayOnce);
            animation.currentWaitTime    = oldAnim.currentWaitTime;
            animation.waitTimeTarget     = oldAnim.waitTimeTarget;
            animation.animationDirection = oldAnim.animationDirection;
            animation.Paused             = oldAnim.Paused;
            animation.lastAnimationName  = oldAnim.lastAnimationName;
        }
示例#3
0
        /// <summary>Reloads the texture and sprite definition from disk.</summary>
        public void Reload()
        {
            var currentAnimationFrame = animation.GetCurrentFrame();
            var currentAnimationName = animation.Definition.Name;
            var currentPlayOnce = animation.GetPlayOnce();

            var reloadedSprite = Sprite.LoadSprite(spritePath);
            Texture2D = reloadedSprite.Texture2D;
            SpriteDefinition = reloadedSprite.SpriteDefinition;
            var oldAnim = animation;
            animation = reloadedSprite.animation;
            animation.SetDefinition(SpriteDefinition.AnimationDefinitions[currentAnimationName], false);
            animation.SetFrame(currentAnimationFrame);
            animation.SetPlayOnce(currentPlayOnce);
            animation.currentWaitTime = oldAnim.currentWaitTime;
            animation.waitTimeTarget = oldAnim.waitTimeTarget;
            animation.animationDirection = oldAnim.animationDirection;
            animation.Paused = oldAnim.Paused;
            animation.lastAnimationName = oldAnim.lastAnimationName;
        }