Browse Source

fixed clockwise rotation

ncannasse 11 năm trước cách đây
mục cha
commit
93db3e5249
3 tập tin đã thay đổi với 15 bổ sung15 xóa
  1. 1 1
      h2d/Scene.hx
  2. 6 6
      h2d/Sprite.hx
  3. 8 8
      h2d/SpriteBatch.hx

+ 1 - 1
h2d/Scene.hx

@@ -372,7 +372,7 @@ class Scene extends Layers implements h3d.IDrawable {
 		// perform final rotation around center
 		// perform final rotation around center
 		if( rotation != 0 ) {
 		if( rotation != 0 ) {
 			var cr = Math.cos(rotation);
 			var cr = Math.cos(rotation);
-			var sr = -Math.sin(rotation);
+			var sr = Math.sin(rotation);
 			var tmpA = matA * cr + matB * sr;
 			var tmpA = matA * cr + matB * sr;
 			var tmpB = matA * -sr + matB * cr;
 			var tmpB = matA * -sr + matB * cr;
 			var tmpC = matC * cr + matD * sr;
 			var tmpC = matC * cr + matD * sr;

+ 6 - 6
h2d/Sprite.hx

@@ -214,10 +214,10 @@ class Sprite {
 				matD = scaleY;
 				matD = scaleY;
 			} else {
 			} else {
 				cr = Math.cos(rotation);
 				cr = Math.cos(rotation);
-				sr = -Math.sin(rotation);
+				sr = Math.sin(rotation);
 				matA = scaleX * cr;
 				matA = scaleX * cr;
-				matB = scaleX * -sr;
-				matC = scaleY * sr;
+				matB = scaleX * sr;
+				matC = scaleY * -sr;
 				matD = scaleY * cr;
 				matD = scaleY * cr;
 			}
 			}
 			absX = x;
 			absX = x;
@@ -232,10 +232,10 @@ class Sprite {
 				matD = scaleY * parent.matD;
 				matD = scaleY * parent.matD;
 			} else {
 			} else {
 				var cr = Math.cos(rotation);
 				var cr = Math.cos(rotation);
-				var sr = -Math.sin(rotation);
+				var sr = Math.sin(rotation);
 				var tmpA = scaleX * cr;
 				var tmpA = scaleX * cr;
-				var tmpB = scaleX * -sr;
-				var tmpC = scaleY * sr;
+				var tmpB = scaleX * sr;
+				var tmpC = scaleY * -sr;
 				var tmpD = scaleY * cr;
 				var tmpD = scaleY * cr;
 				matA = tmpA * parent.matA + tmpB * parent.matC;
 				matA = tmpA * parent.matA + tmpB * parent.matC;
 				matB = tmpA * parent.matB + tmpB * parent.matD;
 				matB = tmpA * parent.matB + tmpB * parent.matD;

+ 8 - 8
h2d/SpriteBatch.hx

@@ -100,26 +100,26 @@ class SpriteBatch extends Drawable {
 				var ca = Math.cos(e.rotation), sa = Math.sin(e.rotation);
 				var ca = Math.cos(e.rotation), sa = Math.sin(e.rotation);
 				var hx = t.width, hy = t.height;
 				var hx = t.width, hy = t.height;
 				var px = t.dx, py = t.dy;
 				var px = t.dx, py = t.dy;
-				tmp[pos++] = (px * ca + py * sa) * e.scale + e.x;
-				tmp[pos++] = (py * ca - px * sa) * e.scale + e.y;
+				tmp[pos++] = (px * ca - py * sa) * e.scale + e.x;
+				tmp[pos++] = (py * ca + px * sa) * e.scale + e.y;
 				tmp[pos++] = t.u;
 				tmp[pos++] = t.u;
 				tmp[pos++] = t.v;
 				tmp[pos++] = t.v;
 				tmp[pos++] = e.alpha;
 				tmp[pos++] = e.alpha;
 				var px = t.dx + hx, py = t.dy;
 				var px = t.dx + hx, py = t.dy;
-				tmp[pos++] = (px * ca + py * sa) * e.scale + e.x;
-				tmp[pos++] = (py * ca - px * sa) * e.scale + e.y;
+				tmp[pos++] = (px * ca - py * sa) * e.scale + e.x;
+				tmp[pos++] = (py * ca + px * sa) * e.scale + e.y;
 				tmp[pos++] = t.u2;
 				tmp[pos++] = t.u2;
 				tmp[pos++] = t.v;
 				tmp[pos++] = t.v;
 				tmp[pos++] = e.alpha;
 				tmp[pos++] = e.alpha;
 				var px = t.dx, py = t.dy + hy;
 				var px = t.dx, py = t.dy + hy;
-				tmp[pos++] = (px * ca + py * sa) * e.scale + e.x;
-				tmp[pos++] = (py * ca - px * sa) * e.scale + e.y;
+				tmp[pos++] = (px * ca - py * sa) * e.scale + e.x;
+				tmp[pos++] = (py * ca + px * sa) * e.scale + e.y;
 				tmp[pos++] = t.u;
 				tmp[pos++] = t.u;
 				tmp[pos++] = t.v2;
 				tmp[pos++] = t.v2;
 				tmp[pos++] = e.alpha;
 				tmp[pos++] = e.alpha;
 				var px = t.dx + hx, py = t.dy + hy;
 				var px = t.dx + hx, py = t.dy + hy;
-				tmp[pos++] = (px * ca + py * sa) * e.scale + e.x;
-				tmp[pos++] = (py * ca - px * sa) * e.scale + e.y;
+				tmp[pos++] = (px * ca - py * sa) * e.scale + e.x;
+				tmp[pos++] = (py * ca + px * sa) * e.scale + e.y;
 				tmp[pos++] = t.u2;
 				tmp[pos++] = t.u2;
 				tmp[pos++] = t.v2;
 				tmp[pos++] = t.v2;
 				tmp[pos++] = e.alpha;
 				tmp[pos++] = e.alpha;