浏览代码

Fixed flipping.

NathanSweet 11 年之前
父节点
当前提交
337b55005d
共有 2 个文件被更改,包括 5 次插入6 次删除
  1. 0 1
      spine-c/include/spine/Bone.h
  2. 5 5
      spine-c/src/spine/Bone.c

+ 0 - 1
spine-c/include/spine/Bone.h

@@ -47,7 +47,6 @@ struct spBone {
 	float x, y;
 	float rotation, rotationIK;
 	float scaleX, scaleY;
-	int/*bool*/flipX, flipY;
 
 	float const m00, m01, worldX; /* a b x */
 	float const m10, m11, worldY; /* c d y */

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

@@ -65,8 +65,8 @@ void spBone_updateWorldTransform (spBone* self) {
 		CONST_CAST(float, self->worldRotation) =
 				self->data->inheritRotation ? self->parent->worldRotation + self->rotationIK : self->rotationIK;
 	} else {
-		CONST_CAST(float, self->worldX) = self->flipX ? -self->x : self->x;
-		CONST_CAST(float, self->worldY) = self->flipY != yDown ? -self->y : self->y;
+		CONST_CAST(float, self->worldX) = self->skeleton->flipX ? -self->x : self->x;
+		CONST_CAST(float, self->worldY) = self->skeleton->flipY != yDown ? -self->y : self->y;
 		CONST_CAST(float, self->worldScaleX) = self->scaleX;
 		CONST_CAST(float, self->worldScaleY) = self->scaleY;
 		CONST_CAST(float, self->worldRotation) = self->rotationIK;
@@ -74,14 +74,14 @@ void spBone_updateWorldTransform (spBone* self) {
 	radians = self->worldRotation * DEG_RAD;
 	cosine = COS(radians);
 	sine = SIN(radians);
-	if (self->flipX) {
+	if (self->skeleton->flipX) {
 		CONST_CAST(float, self->m00) = -cosine * self->worldScaleX;
 		CONST_CAST(float, self->m01) = sine * self->worldScaleY;
 	} else {
 		CONST_CAST(float, self->m00) = cosine * self->worldScaleX;
 		CONST_CAST(float, self->m01) = -sine * self->worldScaleY;
 	}
-	if (self->flipY != yDown) {
+	if (self->skeleton->flipY != yDown) {
 		CONST_CAST(float, self->m10) = -sine * self->worldScaleX;
 		CONST_CAST(float, self->m11) = -cosine * self->worldScaleY;
 	} else {
@@ -103,7 +103,7 @@ void spBone_worldToLocal (spBone* self, float worldX, float worldY, float* local
 	float invDet;
 	float dx = worldX - self->worldX, dy = worldY - self->worldY;
 	float m00 = self->m00, m11 = self->m11;
-	if (self->flipX != (self->flipY != yDown)) {
+	if (self->skeleton->flipX != (self->skeleton->flipY != yDown)) {
 		m00 *= -1;
 		m11 *= -1;
 	}