Эх сурвалжийг харах

Merge remote-tracking branch 'origin/3.6-beta' into 3.6-beta

Nathan Sweet 8 жил өмнө
parent
commit
68d0db8f35

+ 15 - 15
spine-csharp/src/AnimationState.cs

@@ -413,22 +413,22 @@ namespace Spine {
 
 				//from.timelinesRotation.Clear();
 				var mixingFrom = from.mixingFrom;
-				float mixProgress = from.mixTime / from.mixDuration;
-				if (mixingFrom != null && from.mixDuration > 0) {
-					// A mix was interrupted, mix from the closest animation.
-					if (!multipleMixing && mixProgress < 0.5f && mixingFrom.animation != AnimationState.EmptyAnimation) {
-						current.mixingFrom = mixingFrom;
-						mixingFrom.mixingFrom = from;
-						mixingFrom.mixTime = from.mixDuration - from.mixTime;
-						mixingFrom.mixDuration = from.mixDuration;
-						from.mixingFrom = null;
-						from = mixingFrom;
-					}
 
-					// The interrupted mix will mix out from its current percentage to zero.
-					if (multipleMixing) current.mixAlpha *= Math.Min(mixProgress, 1);
+				if (mixingFrom != null && from.mixDuration > 0) {
+					if (multipleMixing) {
+						// The interrupted mix will mix out from its current percentage to zero.
+						current.mixAlpha *= Math.Min(from.mixTime / from.mixDuration, 1);
+					} else {
+						// A mix was interrupted, mix from the closest animation.
+						if (from.mixTime / from.mixDuration < 0.5f && mixingFrom.animation != AnimationState.EmptyAnimation) {
+							current.mixingFrom = mixingFrom;
+							mixingFrom.mixingFrom = from;
+							mixingFrom.mixTime = from.mixDuration - from.mixTime;
+							mixingFrom.mixDuration = from.mixDuration;
+							from.mixingFrom = null;
+							from = mixingFrom;
+						}
 
-					if (!multipleMixing) {
 						from.mixAlpha = 0;
 						from.mixTime = 0;
 						from.mixDuration = 0;
@@ -650,7 +650,7 @@ namespace Spine {
 				var timelinesItems = timelines.Items;
 				for (int ii = 0, nn = timelines.Count; ii < nn; ii++)
 					propertyIDs.Add(timelinesItems[ii].PropertyId);
-	
+
 				entry = entry.mixingFrom;
 				while (entry != null) {
 					CheckTimelinesUsage(entry, entry.timelinesLast);

+ 9 - 2
spine-ts/webgl/demos/hoverboard.js

@@ -143,8 +143,15 @@ var hoverboardDemo = function(loadingComplete, bgColor) {
 
 		renderer.begin();
 		renderer.drawSkeleton(skeleton, true);
-		// renderer.drawSkeletonDebug(skeleton, false, ["root"]);
-
+		renderer.drawSkeletonDebug(skeleton, false, ["root"]);
+		gl.lineWidth(2);
+		for (var i = 0; i < controlBones.length; i++) {
+			var bone = skeleton.findBone(controlBones[i]);
+			var colorInner = hoverTargets[i] !== null ? spineDemos.HOVER_COLOR_INNER : spineDemos.NON_HOVER_COLOR_INNER;
+			var colorOuter = hoverTargets[i] !== null ? spineDemos.HOVER_COLOR_OUTER : spineDemos.NON_HOVER_COLOR_OUTER;
+			renderer.circle(true, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, colorInner);
+			renderer.circle(false, skeleton.x + bone.worldX, skeleton.y + bone.worldY, 20, colorOuter);
+		}
 		renderer.end();
 		gl.lineWidth(1);
 

+ 3 - 2
spine-ts/webgl/demos/imagechanges.js

@@ -100,7 +100,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
 		var anim = skeletonData.findAnimation(animation);
 		state.setAnimation(0, animation, true);
 		if (name === "alien") {
-			state.update(anim.duration / 2.5);
+			state.update(anim.duration / 1.4);
 		}
 		state.apply(skeleton);
 		skeleton.updateWorldTransform();
@@ -108,7 +108,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
 		var size = new spine.Vector2();
 		skeleton.getBounds(offset, size, []);
 		if (name === "alien") {
-			state.update(-anim.duration / 2.5);
+			state.update(-anim.duration / 1.4);
 		}
 
 		var regions = [];
@@ -146,6 +146,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
 
 		var x = offset.x + size.x + 100, offsetY = offset.y;
 		if (activeSkeleton === "Alien") {
+			skeleton.x = -400;
 			renderer.camera.position.x = offset.x + size.x - 100;
 			renderer.camera.position.y = offset.y + size.y / 2 + 100;
 			offsetY += 125;

+ 1 - 0
spine-ts/webgl/demos/skins.js

@@ -208,6 +208,7 @@ var skinsDemo = function(loadingComplete, bgColor) {
 
 		state.update(delta);
 		state.apply(skeleton);
+		skeleton.y = -150;
 		skeleton.updateWorldTransform();
 
 		renderer.begin();

+ 1 - 1
spine-ts/webgl/demos/stretchyman.js

@@ -175,7 +175,7 @@ var stretchymanDemo = function(loadingComplete, bgColor) {
 		skeleton.updateWorldTransform();
 
 		renderer.camera.viewportWidth = bounds.x * 1.2;
-		renderer.camera.viewportHeight = bounds.y * 1.2;
+		renderer.camera.viewportHeight = bounds.y * 1.5;
 		renderer.resize(spine.webgl.ResizeMode.Fit);
 
 		gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);

+ 3 - 4
spine-ts/webgl/demos/transforms.js

@@ -60,8 +60,8 @@ var transformsDemo = function(loadingComplete, bgColor) {
 			skeleton.updateWorldTransform();
 			rotateHandle = skeleton.findBone("rotate-handle");
 
-			renderer.camera.position.x = offset.x + bounds.x / 2;
-			renderer.camera.position.y = offset.y + bounds.y / 2;
+			renderer.camera.position.x = offset.x + bounds.x / 2 + 70;
+			renderer.camera.position.y = offset.y + bounds.y / 2 + 50;
 
 			renderer.skeletonDebugRenderer.drawRegionAttachments = false;
 			renderer.skeletonDebugRenderer.drawMeshHull = false;
@@ -161,10 +161,9 @@ var transformsDemo = function(loadingComplete, bgColor) {
 	function render () {
 		timeKeeper.update();
 		var delta = timeKeeper.delta;
-
 		skeleton.updateWorldTransform();
 
-		renderer.camera.viewportWidth = bounds.x * 1.2;
+		renderer.camera.viewportWidth = bounds.x * 1.6;
 		renderer.camera.viewportHeight = bounds.y * 1.2;
 		renderer.resize(spine.webgl.ResizeMode.Fit);
 

+ 5 - 3
spine-ts/webgl/demos/transitions.js

@@ -123,8 +123,8 @@ var transitionsDemo = function(loadingComplete, bgColor) {
 
 		renderer.camera.position.x = offset.x + size.x - 50;
 		renderer.camera.position.y = offset.y + size.y / 2 - 40;
-		renderer.camera.viewportWidth = size.x * 2.4;
-		renderer.camera.viewportHeight = size.y * 1.2;
+		renderer.camera.viewportWidth = size.x * 2;
+		renderer.camera.viewportHeight = size.y * 2;
 		renderer.resize(spine.webgl.ResizeMode.Fit);
 
 		gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
@@ -134,13 +134,15 @@ var transitionsDemo = function(loadingComplete, bgColor) {
 		state.update(delta);
 		state.apply(skeleton);
 		skeleton.updateWorldTransform();
-		skeleton.x = -10;
+		skeleton.x = -300;
+		skeleton.y = -100;
 		renderer.drawSkeleton(skeleton, true);
 
 		stateNoMix.update(delta);
 		stateNoMix.apply(skeletonNoMix);
 		skeletonNoMix.updateWorldTransform();
 		skeletonNoMix.x = size.x + 45;
+		skeletonNoMix.y = -100;
 		renderer.drawSkeleton(skeletonNoMix, true);
 		renderer.end();