mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 09:46:02 +08:00
Fixes for reading mix X/Y.
This commit is contained in:
parent
fe9baaf849
commit
7aa940a961
@ -202,7 +202,7 @@ package spine {
|
|||||||
if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) pathData.spacing *= scale;
|
if (pathData.spacingMode == SpacingMode.length || pathData.spacingMode == SpacingMode.fixed) pathData.spacing *= scale;
|
||||||
pathData.mixRotate = getNumber(constraintMap, "mixRotate", 1);
|
pathData.mixRotate = getNumber(constraintMap, "mixRotate", 1);
|
||||||
pathData.mixX = getNumber(constraintMap, "mixX", 1);
|
pathData.mixX = getNumber(constraintMap, "mixX", 1);
|
||||||
pathData.mixY = getNumber(constraintMap, "mixY", 1);
|
pathData.mixY = getNumber(constraintMap, "mixY", pathData.mixX);
|
||||||
|
|
||||||
skeletonData.pathConstraints.push(pathData);
|
skeletonData.pathConstraints.push(pathData);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1087,7 +1087,7 @@ spSkeletonData* spSkeletonJson_readSkeletonData (spSkeletonJson* self, const cha
|
|||||||
if (data->spacingMode == SP_SPACING_MODE_LENGTH || data->spacingMode == SP_SPACING_MODE_FIXED) data->spacing *= self->scale;
|
if (data->spacingMode == SP_SPACING_MODE_LENGTH || data->spacingMode == SP_SPACING_MODE_FIXED) data->spacing *= self->scale;
|
||||||
data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1);
|
data->mixRotate = Json_getFloat(constraintMap, "mixRotate", 1);
|
||||||
data->mixX = Json_getFloat(constraintMap, "mixX", 1);
|
data->mixX = Json_getFloat(constraintMap, "mixX", 1);
|
||||||
data->mixY = Json_getFloat(constraintMap, "mixY", 1);
|
data->mixY = Json_getFloat(constraintMap, "mixY", data->mixX);
|
||||||
|
|
||||||
skeletonData->pathConstraints[i] = data;
|
skeletonData->pathConstraints[i] = data;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -418,7 +418,7 @@ SkeletonData *SkeletonJson::readSkeletonData(const char *json) {
|
|||||||
if (data->_spacingMode == SpacingMode_Length || data->_spacingMode == SpacingMode_Fixed) data->_spacing *= _scale;
|
if (data->_spacingMode == SpacingMode_Length || data->_spacingMode == SpacingMode_Fixed) data->_spacing *= _scale;
|
||||||
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
|
data->_mixRotate = Json::getFloat(constraintMap, "mixRotate", 1);
|
||||||
data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
|
data->_mixX = Json::getFloat(constraintMap, "mixX", 1);
|
||||||
data->_mixY = Json::getFloat(constraintMap, "mixY", 1);
|
data->_mixY = Json::getFloat(constraintMap, "mixY", data->_mixX);
|
||||||
|
|
||||||
skeletonData->_pathConstraints[i] = data;
|
skeletonData->_pathConstraints[i] = data;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -271,8 +271,7 @@ namespace Spine {
|
|||||||
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
|
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
|
||||||
data.mixRotate = GetFloat(constraintMap, "mixRotate", 1);
|
data.mixRotate = GetFloat(constraintMap, "mixRotate", 1);
|
||||||
data.mixX = GetFloat(constraintMap, "mixX", 1);
|
data.mixX = GetFloat(constraintMap, "mixX", 1);
|
||||||
data.mixY = GetFloat(constraintMap, "mixY", 1);
|
data.mixY = GetFloat(constraintMap, "mixY", data.mixX);
|
||||||
|
|
||||||
|
|
||||||
skeletonData.pathConstraints.Add(data);
|
skeletonData.pathConstraints.Add(data);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -773,9 +773,10 @@ public class SkeletonJson extends SkeletonLoader {
|
|||||||
TransformConstraintTimeline timeline = new TransformConstraintTimeline(timelineMap.size, timelineMap.size << 2,
|
TransformConstraintTimeline timeline = new TransformConstraintTimeline(timelineMap.size, timelineMap.size << 2,
|
||||||
skeletonData.getTransformConstraints().indexOf(constraint, true));
|
skeletonData.getTransformConstraints().indexOf(constraint, true));
|
||||||
float time = keyMap.getFloat("time", 0);
|
float time = keyMap.getFloat("time", 0);
|
||||||
float mixRotate = keyMap.getFloat("mixRotate", 1), mixShearY = keyMap.getFloat("mixShearY", 1);
|
float mixRotate = keyMap.getFloat("mixRotate", 1);
|
||||||
float mixX = keyMap.getFloat("mixX", 1), mixY = keyMap.getFloat("mixY", mixX);
|
float mixX = keyMap.getFloat("mixX", 1), mixY = keyMap.getFloat("mixY", mixX);
|
||||||
float mixScaleX = keyMap.getFloat("mixScaleX", 1), mixScaleY = keyMap.getFloat("mixScaleY", mixScaleX);
|
float mixScaleX = keyMap.getFloat("mixScaleX", 1), mixScaleY = keyMap.getFloat("mixScaleY", mixScaleX);
|
||||||
|
float mixShearY = keyMap.getFloat("mixShearY", 1);
|
||||||
for (int frame = 0, bezier = 0;; frame++) {
|
for (int frame = 0, bezier = 0;; frame++) {
|
||||||
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
|
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
|
||||||
JsonValue nextMap = keyMap.next;
|
JsonValue nextMap = keyMap.next;
|
||||||
@ -784,9 +785,10 @@ public class SkeletonJson extends SkeletonLoader {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
float time2 = nextMap.getFloat("time", 0);
|
float time2 = nextMap.getFloat("time", 0);
|
||||||
float mixRotate2 = nextMap.getFloat("mixRotate", 1), mixShearY2 = nextMap.getFloat("mixShearY", 1);
|
float mixRotate2 = nextMap.getFloat("mixRotate", 1);
|
||||||
float mixX2 = nextMap.getFloat("mixX", 1), mixY2 = nextMap.getFloat("mixY", mixX2);
|
float mixX2 = nextMap.getFloat("mixX", 1), mixY2 = nextMap.getFloat("mixY", mixX2);
|
||||||
float mixScaleX2 = nextMap.getFloat("mixScaleX", 1), mixScaleY2 = nextMap.getFloat("mixScaleY", mixScaleX2);
|
float mixScaleX2 = nextMap.getFloat("mixScaleX", 1), mixScaleY2 = nextMap.getFloat("mixScaleY", mixScaleX2);
|
||||||
|
float mixShearY2 = nextMap.getFloat("mixShearY", 1);
|
||||||
JsonValue curve = keyMap.get("curve");
|
JsonValue curve = keyMap.get("curve");
|
||||||
if (curve != null) {
|
if (curve != null) {
|
||||||
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
|
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
|
||||||
|
|||||||
@ -216,7 +216,7 @@ module spine {
|
|||||||
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
|
if (data.spacingMode == SpacingMode.Length || data.spacingMode == SpacingMode.Fixed) data.spacing *= scale;
|
||||||
data.mixRotate = getValue(constraintMap, "mixRotate", 1);
|
data.mixRotate = getValue(constraintMap, "mixRotate", 1);
|
||||||
data.mixX = getValue(constraintMap, "mixX", 1);
|
data.mixX = getValue(constraintMap, "mixX", 1);
|
||||||
data.mixY = getValue(constraintMap, "mixY", 1);
|
data.mixY = getValue(constraintMap, "mixY", data.mixX);
|
||||||
|
|
||||||
skeletonData.pathConstraints.push(data);
|
skeletonData.pathConstraints.push(data);
|
||||||
}
|
}
|
||||||
@ -697,11 +697,11 @@ module spine {
|
|||||||
|
|
||||||
let time = getValue(keyMap, "time", 0);
|
let time = getValue(keyMap, "time", 0);
|
||||||
let mixRotate = getValue(keyMap, "mixRotate", 1);
|
let mixRotate = getValue(keyMap, "mixRotate", 1);
|
||||||
let mixShearY = getValue(keyMap, "mixShearY", 1);
|
|
||||||
let mixX = getValue(keyMap, "mixX", 1);
|
let mixX = getValue(keyMap, "mixX", 1);
|
||||||
let mixY = getValue(keyMap, "mixY", mixX);
|
let mixY = getValue(keyMap, "mixY", mixX);
|
||||||
let mixScaleX = getValue(keyMap, "mixScaleX", 1);
|
let mixScaleX = getValue(keyMap, "mixScaleX", 1);
|
||||||
let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX);
|
let mixScaleY = getValue(keyMap, "mixScaleY", mixScaleX);
|
||||||
|
let mixShearY = getValue(keyMap, "mixShearY", 1);
|
||||||
|
|
||||||
for (let frame = 0, bezier = 0;; frame++) {
|
for (let frame = 0, bezier = 0;; frame++) {
|
||||||
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
|
timeline.setFrame(frame, time, mixRotate, mixX, mixY, mixScaleX, mixScaleY, mixShearY);
|
||||||
@ -710,11 +710,11 @@ module spine {
|
|||||||
|
|
||||||
let time2 = getValue(nextMap, "time", 0);
|
let time2 = getValue(nextMap, "time", 0);
|
||||||
let mixRotate2 = getValue(nextMap, "mixRotate", 1);
|
let mixRotate2 = getValue(nextMap, "mixRotate", 1);
|
||||||
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
|
|
||||||
let mixX2 = getValue(nextMap, "mixX", 1);
|
let mixX2 = getValue(nextMap, "mixX", 1);
|
||||||
let mixY2 = getValue(nextMap, "mixY", mixX2);
|
let mixY2 = getValue(nextMap, "mixY", mixX2);
|
||||||
let mixScaleX2 = getValue(nextMap, "mixScaleX", 1);
|
let mixScaleX2 = getValue(nextMap, "mixScaleX", 1);
|
||||||
let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2);
|
let mixScaleY2 = getValue(nextMap, "mixScaleY", mixScaleX2);
|
||||||
|
let mixShearY2 = getValue(nextMap, "mixShearY", 1);
|
||||||
let curve = keyMap.curve;
|
let curve = keyMap.curve;
|
||||||
if (curve) {
|
if (curve) {
|
||||||
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
|
bezier = readCurve(curve, timeline, bezier, frame, 0, time, time2, mixRotate, mixRotate2, 1);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user