From a372a89b5ee44896dc4d3e025672e5618eb957c5 Mon Sep 17 00:00:00 2001 From: ww-rm Date: Thu, 27 Mar 2025 09:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0update0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Spine/Implementations/Spine/Spine21.cs | 7 ++- .../Spine/Implementations/Spine/Spine36.cs | 7 ++- .../Spine/Implementations/Spine/Spine37.cs | 57 +++---------------- .../Spine/Implementations/Spine/Spine38.cs | 4 ++ .../Spine/Implementations/Spine/Spine40.cs | 4 ++ .../Spine/Implementations/Spine/Spine41.cs | 4 ++ .../Spine/Implementations/Spine/Spine42.cs | 4 ++ 7 files changed, 31 insertions(+), 56 deletions(-) diff --git a/SpineViewer/Spine/Implementations/Spine/Spine21.cs b/SpineViewer/Spine/Implementations/Spine/Spine21.cs index 2f5cbdb..d45ec4b 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine21.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine21.cs @@ -148,20 +148,21 @@ namespace SpineViewer.Spine.Implementations.Spine set { skeleton.X = value.X; - skeleton.Y = value.Y; + skeleton.Y = value.Y; + Update(0); } } public override bool FlipX { get => skeleton.FlipX; - set => skeleton.FlipX = value; + set { skeleton.FlipX = value; Update(0); } } public override bool FlipY { get => skeleton.FlipY; - set => skeleton.FlipY = value; + set { skeleton.FlipY = value; Update(0); } } public override string CurrentAnimation diff --git a/SpineViewer/Spine/Implementations/Spine/Spine36.cs b/SpineViewer/Spine/Implementations/Spine/Spine36.cs index f121b62..d6457db 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine36.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine36.cs @@ -147,20 +147,21 @@ namespace SpineViewer.Spine.Implementations.Spine set { skeleton.X = value.X; - skeleton.Y = value.Y; + skeleton.Y = value.Y; + Update(0); } } public override bool FlipX { get => skeleton.FlipX; - set => skeleton.FlipX = value; + set { skeleton.FlipX = value; Update(0); } } public override bool FlipY { get => skeleton.FlipY; - set => skeleton.FlipY = value; + set { skeleton.FlipY = value; Update(0); } } public override string CurrentAnimation diff --git a/SpineViewer/Spine/Implementations/Spine/Spine37.cs b/SpineViewer/Spine/Implementations/Spine/Spine37.cs index 30a4c59..9961e48 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine37.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine37.cs @@ -95,58 +95,12 @@ namespace SpineViewer.Spine.Implementations.Spine public override float Scale { - get - { - if (skeletonBinary is not null) - return skeletonBinary.Scale; - else if (skeletonJson is not null) - return skeletonJson.Scale; - else - return 1f; - } + get => Math.Abs(skeleton.ScaleX); set { - // 保存状态 - var position = Position; - var flipX = FlipX; - var flipY = FlipY; - var savedTrack0 = animationState.GetCurrent(0); - - var val = Math.Max(value, SCALE_MIN); - if (skeletonBinary is not null) - { - skeletonBinary.Scale = val; - skeletonData = skeletonBinary.ReadSkeletonData(SkelPath); - } - else if (skeletonJson is not null) - { - skeletonJson.Scale = val; - skeletonData = skeletonJson.ReadSkeletonData(SkelPath); - } - - // reload skel-dependent data - animationStateData = new AnimationStateData(skeletonData) { DefaultMix = animationStateData.DefaultMix }; - skeleton = new Skeleton(skeletonData); - animationState = new AnimationState(animationStateData); - - // 恢复状态 - Position = position; - FlipX = flipX; - FlipY = flipY; - - // 恢复原本 Track0 上所有动画 - if (savedTrack0 is not null) - { - var entry = animationState.SetAnimation(0, savedTrack0.Animation.Name, true); - entry.TrackTime = savedTrack0.TrackTime; - var savedEntry = savedTrack0.Next; - while (savedEntry is not null) - { - entry = animationState.AddAnimation(0, savedEntry.Animation.Name, true, 0); - entry.TrackTime = savedEntry.TrackTime; - savedEntry = savedEntry.Next; - } - } + skeleton.ScaleX = Math.Sign(skeleton.ScaleX) * value; + skeleton.ScaleY = Math.Sign(skeleton.ScaleY) * value; + Update(0); } } @@ -157,6 +111,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.X = value.X; skeleton.Y = value.Y; + Update(0); } } @@ -167,6 +122,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleX > 0 && value || skeleton.ScaleX < 0 && !value) skeleton.ScaleX *= -1; + Update(0); } } @@ -177,6 +133,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleY > 0 && value || skeleton.ScaleY < 0 && !value) skeleton.ScaleY *= -1; + Update(0); } } diff --git a/SpineViewer/Spine/Implementations/Spine/Spine38.cs b/SpineViewer/Spine/Implementations/Spine/Spine38.cs index 5c55327..7b5a7dd 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine38.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine38.cs @@ -106,6 +106,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.ScaleX = Math.Sign(skeleton.ScaleX) * value; skeleton.ScaleY = Math.Sign(skeleton.ScaleY) * value; + Update(0); } } @@ -116,6 +117,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.X = value.X; skeleton.Y = value.Y; + Update(0); } } @@ -126,6 +128,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleX > 0 && value || skeleton.ScaleX < 0 && !value) skeleton.ScaleX *= -1; + Update(0); } } @@ -136,6 +139,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleY > 0 && value || skeleton.ScaleY < 0 && !value) skeleton.ScaleY *= -1; + Update(0); } } diff --git a/SpineViewer/Spine/Implementations/Spine/Spine40.cs b/SpineViewer/Spine/Implementations/Spine/Spine40.cs index f5e522e..9e86170 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine40.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine40.cs @@ -102,6 +102,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.ScaleX = Math.Sign(skeleton.ScaleX) * value; skeleton.ScaleY = Math.Sign(skeleton.ScaleY) * value; + Update(0); } } @@ -112,6 +113,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.X = value.X; skeleton.Y = value.Y; + Update(0); } } @@ -122,6 +124,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleX > 0 && value || skeleton.ScaleX < 0 && !value) skeleton.ScaleX *= -1; + Update(0); } } @@ -132,6 +135,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleY > 0 && value || skeleton.ScaleY < 0 && !value) skeleton.ScaleY *= -1; + Update(0); } } diff --git a/SpineViewer/Spine/Implementations/Spine/Spine41.cs b/SpineViewer/Spine/Implementations/Spine/Spine41.cs index 7b210d7..0c091a5 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine41.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine41.cs @@ -102,6 +102,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.ScaleX = Math.Sign(skeleton.ScaleX) * value; skeleton.ScaleY = Math.Sign(skeleton.ScaleY) * value; + Update(0); } } @@ -112,6 +113,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.X = value.X; skeleton.Y = value.Y; + Update(0); } } @@ -122,6 +124,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleX > 0 && value || skeleton.ScaleX < 0 && !value) skeleton.ScaleX *= -1; + Update(0); } } @@ -132,6 +135,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleY > 0 && value || skeleton.ScaleY < 0 && !value) skeleton.ScaleY *= -1; + Update(0); } } diff --git a/SpineViewer/Spine/Implementations/Spine/Spine42.cs b/SpineViewer/Spine/Implementations/Spine/Spine42.cs index e75df6e..bd7497c 100644 --- a/SpineViewer/Spine/Implementations/Spine/Spine42.cs +++ b/SpineViewer/Spine/Implementations/Spine/Spine42.cs @@ -102,6 +102,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.ScaleX = Math.Sign(skeleton.ScaleX) * value; skeleton.ScaleY = Math.Sign(skeleton.ScaleY) * value; + Update(0); } } @@ -112,6 +113,7 @@ namespace SpineViewer.Spine.Implementations.Spine { skeleton.X = value.X; skeleton.Y = value.Y; + Update(0); } } @@ -122,6 +124,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleX > 0 && value || skeleton.ScaleX < 0 && !value) skeleton.ScaleX *= -1; + Update(0); } } @@ -132,6 +135,7 @@ namespace SpineViewer.Spine.Implementations.Spine { if (skeleton.ScaleY > 0 && value || skeleton.ScaleY < 0 && !value) skeleton.ScaleY *= -1; + Update(0); } }