Kaynağa Gözat

[c] Fix applying flipping for noScale/noScaleOrReflection transform mode. See #951

badlogic 8 yıl önce
ebeveyn
işleme
1013e31268
1 değiştirilmiş dosya ile 4 ekleme ve 4 silme
  1. 4 4
      spine-c/spine-c/src/spine/Bone.c

+ 4 - 4
spine-c/spine-c/src/spine/Bone.c

@@ -173,14 +173,14 @@ void spBone_updateWorldTransformWith (spBone* self, float x, float y, float rota
 			lb = COS_DEG(90 + shearY) * scaleY;
 			lc = SIN_DEG(shearX) * scaleX;
 			ld = SIN_DEG(90 + shearY) * scaleY;
+			if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) {
+				zb = -zb;
+				zd = -zd;
+			}
 			CONST_CAST(float, self->a) = za * la + zb * lc;
 			CONST_CAST(float, self->b) = za * lb + zb * ld;
 			CONST_CAST(float, self->c) = zc * la + zd * lc;
 			CONST_CAST(float, self->d) = zc * lb + zd * ld;
-			if (self->data->transformMode != SP_TRANSFORMMODE_NOSCALEORREFLECTION ? pa * pd - pb * pc < 0 : self->skeleton->flipX != self->skeleton->flipY) {
-				CONST_CAST(float, self->b) = -self->b;
-				CONST_CAST(float, self->d) = -self->d;
-			}
 			return;
 		}
 	}