mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-02 05:39:07 +08:00
Merge remote-tracking branch 'origin/3.6-beta' into 3.6-beta
This commit is contained in:
commit
68d0db8f35
@ -413,22 +413,22 @@ namespace Spine {
|
|||||||
|
|
||||||
//from.timelinesRotation.Clear();
|
//from.timelinesRotation.Clear();
|
||||||
var mixingFrom = from.mixingFrom;
|
var mixingFrom = from.mixingFrom;
|
||||||
float mixProgress = from.mixTime / from.mixDuration;
|
|
||||||
if (mixingFrom != null && from.mixDuration > 0) {
|
if (mixingFrom != null && from.mixDuration > 0) {
|
||||||
// A mix was interrupted, mix from the closest animation.
|
if (multipleMixing) {
|
||||||
if (!multipleMixing && mixProgress < 0.5f && mixingFrom.animation != AnimationState.EmptyAnimation) {
|
// The interrupted mix will mix out from its current percentage to zero.
|
||||||
current.mixingFrom = mixingFrom;
|
current.mixAlpha *= Math.Min(from.mixTime / from.mixDuration, 1);
|
||||||
mixingFrom.mixingFrom = from;
|
} else {
|
||||||
mixingFrom.mixTime = from.mixDuration - from.mixTime;
|
// A mix was interrupted, mix from the closest animation.
|
||||||
mixingFrom.mixDuration = from.mixDuration;
|
if (from.mixTime / from.mixDuration < 0.5f && mixingFrom.animation != AnimationState.EmptyAnimation) {
|
||||||
from.mixingFrom = null;
|
current.mixingFrom = mixingFrom;
|
||||||
from = 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 (!multipleMixing) {
|
|
||||||
from.mixAlpha = 0;
|
from.mixAlpha = 0;
|
||||||
from.mixTime = 0;
|
from.mixTime = 0;
|
||||||
from.mixDuration = 0;
|
from.mixDuration = 0;
|
||||||
@ -650,7 +650,7 @@ namespace Spine {
|
|||||||
var timelinesItems = timelines.Items;
|
var timelinesItems = timelines.Items;
|
||||||
for (int ii = 0, nn = timelines.Count; ii < nn; ii++)
|
for (int ii = 0, nn = timelines.Count; ii < nn; ii++)
|
||||||
propertyIDs.Add(timelinesItems[ii].PropertyId);
|
propertyIDs.Add(timelinesItems[ii].PropertyId);
|
||||||
|
|
||||||
entry = entry.mixingFrom;
|
entry = entry.mixingFrom;
|
||||||
while (entry != null) {
|
while (entry != null) {
|
||||||
CheckTimelinesUsage(entry, entry.timelinesLast);
|
CheckTimelinesUsage(entry, entry.timelinesLast);
|
||||||
|
|||||||
@ -143,8 +143,15 @@ var hoverboardDemo = function(loadingComplete, bgColor) {
|
|||||||
|
|
||||||
renderer.begin();
|
renderer.begin();
|
||||||
renderer.drawSkeleton(skeleton, true);
|
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();
|
renderer.end();
|
||||||
gl.lineWidth(1);
|
gl.lineWidth(1);
|
||||||
|
|
||||||
|
|||||||
@ -100,7 +100,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
|
|||||||
var anim = skeletonData.findAnimation(animation);
|
var anim = skeletonData.findAnimation(animation);
|
||||||
state.setAnimation(0, animation, true);
|
state.setAnimation(0, animation, true);
|
||||||
if (name === "alien") {
|
if (name === "alien") {
|
||||||
state.update(anim.duration / 2.5);
|
state.update(anim.duration / 1.4);
|
||||||
}
|
}
|
||||||
state.apply(skeleton);
|
state.apply(skeleton);
|
||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
@ -108,7 +108,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
|
|||||||
var size = new spine.Vector2();
|
var size = new spine.Vector2();
|
||||||
skeleton.getBounds(offset, size, []);
|
skeleton.getBounds(offset, size, []);
|
||||||
if (name === "alien") {
|
if (name === "alien") {
|
||||||
state.update(-anim.duration / 2.5);
|
state.update(-anim.duration / 1.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
var regions = [];
|
var regions = [];
|
||||||
@ -146,6 +146,7 @@ var imageChangesDemo = function(loadingComplete, bgColor) {
|
|||||||
|
|
||||||
var x = offset.x + size.x + 100, offsetY = offset.y;
|
var x = offset.x + size.x + 100, offsetY = offset.y;
|
||||||
if (activeSkeleton === "Alien") {
|
if (activeSkeleton === "Alien") {
|
||||||
|
skeleton.x = -400;
|
||||||
renderer.camera.position.x = offset.x + size.x - 100;
|
renderer.camera.position.x = offset.x + size.x - 100;
|
||||||
renderer.camera.position.y = offset.y + size.y / 2 + 100;
|
renderer.camera.position.y = offset.y + size.y / 2 + 100;
|
||||||
offsetY += 125;
|
offsetY += 125;
|
||||||
|
|||||||
@ -208,6 +208,7 @@ var skinsDemo = function(loadingComplete, bgColor) {
|
|||||||
|
|
||||||
state.update(delta);
|
state.update(delta);
|
||||||
state.apply(skeleton);
|
state.apply(skeleton);
|
||||||
|
skeleton.y = -150;
|
||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
|
|
||||||
renderer.begin();
|
renderer.begin();
|
||||||
|
|||||||
@ -175,7 +175,7 @@ var stretchymanDemo = function(loadingComplete, bgColor) {
|
|||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
|
|
||||||
renderer.camera.viewportWidth = bounds.x * 1.2;
|
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);
|
renderer.resize(spine.webgl.ResizeMode.Fit);
|
||||||
|
|
||||||
gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
|
gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
|
||||||
|
|||||||
@ -60,8 +60,8 @@ var transformsDemo = function(loadingComplete, bgColor) {
|
|||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
rotateHandle = skeleton.findBone("rotate-handle");
|
rotateHandle = skeleton.findBone("rotate-handle");
|
||||||
|
|
||||||
renderer.camera.position.x = offset.x + bounds.x / 2;
|
renderer.camera.position.x = offset.x + bounds.x / 2 + 70;
|
||||||
renderer.camera.position.y = offset.y + bounds.y / 2;
|
renderer.camera.position.y = offset.y + bounds.y / 2 + 50;
|
||||||
|
|
||||||
renderer.skeletonDebugRenderer.drawRegionAttachments = false;
|
renderer.skeletonDebugRenderer.drawRegionAttachments = false;
|
||||||
renderer.skeletonDebugRenderer.drawMeshHull = false;
|
renderer.skeletonDebugRenderer.drawMeshHull = false;
|
||||||
@ -161,10 +161,9 @@ var transformsDemo = function(loadingComplete, bgColor) {
|
|||||||
function render () {
|
function render () {
|
||||||
timeKeeper.update();
|
timeKeeper.update();
|
||||||
var delta = timeKeeper.delta;
|
var delta = timeKeeper.delta;
|
||||||
|
|
||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
|
|
||||||
renderer.camera.viewportWidth = bounds.x * 1.2;
|
renderer.camera.viewportWidth = bounds.x * 1.6;
|
||||||
renderer.camera.viewportHeight = bounds.y * 1.2;
|
renderer.camera.viewportHeight = bounds.y * 1.2;
|
||||||
renderer.resize(spine.webgl.ResizeMode.Fit);
|
renderer.resize(spine.webgl.ResizeMode.Fit);
|
||||||
|
|
||||||
|
|||||||
@ -123,8 +123,8 @@ var transitionsDemo = function(loadingComplete, bgColor) {
|
|||||||
|
|
||||||
renderer.camera.position.x = offset.x + size.x - 50;
|
renderer.camera.position.x = offset.x + size.x - 50;
|
||||||
renderer.camera.position.y = offset.y + size.y / 2 - 40;
|
renderer.camera.position.y = offset.y + size.y / 2 - 40;
|
||||||
renderer.camera.viewportWidth = size.x * 2.4;
|
renderer.camera.viewportWidth = size.x * 2;
|
||||||
renderer.camera.viewportHeight = size.y * 1.2;
|
renderer.camera.viewportHeight = size.y * 2;
|
||||||
renderer.resize(spine.webgl.ResizeMode.Fit);
|
renderer.resize(spine.webgl.ResizeMode.Fit);
|
||||||
|
|
||||||
gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
|
gl.clearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a);
|
||||||
@ -134,13 +134,15 @@ var transitionsDemo = function(loadingComplete, bgColor) {
|
|||||||
state.update(delta);
|
state.update(delta);
|
||||||
state.apply(skeleton);
|
state.apply(skeleton);
|
||||||
skeleton.updateWorldTransform();
|
skeleton.updateWorldTransform();
|
||||||
skeleton.x = -10;
|
skeleton.x = -300;
|
||||||
|
skeleton.y = -100;
|
||||||
renderer.drawSkeleton(skeleton, true);
|
renderer.drawSkeleton(skeleton, true);
|
||||||
|
|
||||||
stateNoMix.update(delta);
|
stateNoMix.update(delta);
|
||||||
stateNoMix.apply(skeletonNoMix);
|
stateNoMix.apply(skeletonNoMix);
|
||||||
skeletonNoMix.updateWorldTransform();
|
skeletonNoMix.updateWorldTransform();
|
||||||
skeletonNoMix.x = size.x + 45;
|
skeletonNoMix.x = size.x + 45;
|
||||||
|
skeletonNoMix.y = -100;
|
||||||
renderer.drawSkeleton(skeletonNoMix, true);
|
renderer.drawSkeleton(skeletonNoMix, true);
|
||||||
renderer.end();
|
renderer.end();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user