Explorar el Código

Fixed local rotation when inherit rotation is disabled.

NathanSweet hace 9 años
padre
commit
3bfe462534
Se han modificado 1 ficheros con 13 adiciones y 20 borrados
  1. 13 20
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java

+ 13 - 20
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Bone.java

@@ -26,8 +26,8 @@
  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  * POSSIBILITY OF SUCH DAMAGE.
- *****************************************************************************/
-
+ *****************************************************************************/
+
 package com.esotericsoftware.spine;
 package com.esotericsoftware.spine;
 
 
 import static com.badlogic.gdx.math.MathUtils.*;
 import static com.badlogic.gdx.math.MathUtils.*;
@@ -166,23 +166,16 @@ public class Bone implements Updatable {
 			pb = cosDeg(prx + 90) * psy;
 			pb = cosDeg(prx + 90) * psy;
 			pc = sinDeg(prx) * psx;
 			pc = sinDeg(prx) * psx;
 			pd = sinDeg(prx + 90) * psy;
 			pd = sinDeg(prx + 90) * psy;
-			float rotationY = rotation + 90 + shearY;
-			float la = cosDeg(rotation + shearX) * scaleX;
-			float lb = cosDeg(rotationY) * scaleY;
-			float lc = sinDeg(rotation + shearX) * scaleX;
-			float ld = sinDeg(rotationY) * scaleY;
-			float za = pa * la + pb * lc;
-			float zb = pa * lb + pb * ld;
-			float zc = pc * la + pd * lc;
-			float zd = pc * lb + pd * ld;
-			pa = cosDeg(-prx);
-			pb = cosDeg(90 - prx);
-			pc = sinDeg(-prx);
-			pd = sinDeg(90 - prx);
-			a = za * pa + zb * pc;
-			b = za * pb + zb * pd;
-			c = zc * pa + zd * pc;
-			d = zc * pb + zd * pd;
+			float rx = rotation + shearX - prx;
+			float ry = rotation + shearY - prx + 90;
+			float la = cosDeg(rx) * scaleX;
+			float lb = cosDeg(ry) * scaleY;
+			float lc = sinDeg(rx) * scaleX;
+			float ld = sinDeg(ry) * scaleY;
+			a = pa * la + pb * lc;
+			b = pa * lb + pb * ld;
+			c = pc * la + pd * lc;
+			d = pc * lb + pd * ld;
 			break;
 			break;
 		}
 		}
 		case noScale:
 		case noScale:
@@ -466,4 +459,4 @@ public class Bone implements Updatable {
 	public String toString () {
 	public String toString () {
 		return data.name;
 		return data.name;
 	}
 	}
-}
+}