Jelajahi Sumber

[cpp] Ported scale mixing fix, see #2028.

Mario Zechner 3 tahun lalu
induk
melakukan
65c62bff06
1 mengubah file dengan 4 tambahan dan 4 penghapusan
  1. 4 4
      spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp

+ 4 - 4
spine-cpp/spine-cpp/src/spine/ScaleTimeline.cpp

@@ -131,8 +131,8 @@ void ScaleTimeline::apply(Skeleton &skeleton, float lastTime, float time, Vector
 					bone->_scaleY = by + (MathUtil::abs(y) * MathUtil::sign(by) - by) * alpha;
 					break;
 				case MixBlend_Add:
-					bone->_scaleX = (x - bone->_data._scaleX) * alpha;
-					bone->_scaleY = (y - bone->_data._scaleY) * alpha;
+					bone->_scaleX += (x - bone->_data._scaleX) * alpha;
+					bone->_scaleY += (y - bone->_data._scaleY) * alpha;
 			}
 		} else {
 			switch (blend) {
@@ -210,7 +210,7 @@ void ScaleXTimeline::apply(Skeleton &skeleton, float lastTime, float time, Vecto
 					bone->_scaleX = bx + (MathUtil::abs(x) * MathUtil::sign(bx) - bx) * alpha;
 					break;
 				case MixBlend_Add:
-					bone->_scaleX = (x - bone->_data._scaleX) * alpha;
+					bone->_scaleX += (x - bone->_data._scaleX) * alpha;
 			}
 		} else {
 			switch (blend) {
@@ -283,7 +283,7 @@ void ScaleYTimeline::apply(Skeleton &skeleton, float lastTime, float time, Vecto
 					bone->_scaleY = by + (MathUtil::abs(y) * MathUtil::sign(by) - by) * alpha;
 					break;
 				case MixBlend_Add:
-					bone->_scaleY = (y - bone->_data._scaleY) * alpha;
+					bone->_scaleY += (y - bone->_data._scaleY) * alpha;
 			}
 		} else {
 			switch (blend) {