Beispiel #1
0
        public Sprite(Texture2D texture, SpriteDefinition spriteDefinition, string spritePath)
        {
            Texture2D = texture;
            SpriteDefinition = spriteDefinition;
            CurrentAnimationName = "idle";
            this.spritePath = spritePath;

            animation = new SpriteAnimation(SpriteDefinition.AnimationDefinitions[CurrentAnimationName], SpriteDefinition);
        }
Beispiel #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;
        }