فهرست منبع

[libgdx] Do less work for first bezier segment.

NathanSweet 8 سال پیش
والد
کامیت
9acf0621d0
1فایلهای تغییر یافته به همراه2 افزوده شده و 8 حذف شده
  1. 2 8
      spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java

+ 2 - 8
spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java

@@ -245,14 +245,8 @@ public class Animation {
 			for (int start = i, n = i + BEZIER_SIZE - 1; i < n; i += 2) {
 			for (int start = i, n = i + BEZIER_SIZE - 1; i < n; i += 2) {
 				x = curves[i];
 				x = curves[i];
 				if (x >= percent) {
 				if (x >= percent) {
-					float prevX, prevY;
-					if (i == start) {
-						prevX = 0;
-						prevY = 0;
-					} else {
-						prevX = curves[i - 2];
-						prevY = curves[i - 1];
-					}
+					if (i == start) return curves[i + 1] * percent / x; // First point is 0,0.
+					float prevX = curves[i - 2], prevY = curves[i - 1];
 					return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX);
 					return prevY + (curves[i + 1] - prevY) * (percent - prevX) / (x - prevX);
 				}
 				}
 			}
 			}