mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-25 22:23:42 +08:00
[libgdx] Fixed noRotationOrReflection with skeleton scale.
This commit is contained in:
parent
70be289f9c
commit
d769c1a930
@ -153,11 +153,12 @@ public class Bone implements Updatable {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case noRotationOrReflection: {
|
case noRotationOrReflection: {
|
||||||
|
float sx = 1 / skeleton.scaleX, sy = 1 / skeleton.scaleY;
|
||||||
|
pa *= sx;
|
||||||
|
pc *= sy;
|
||||||
float s = pa * pa + pc * pc, prx;
|
float s = pa * pa + pc * pc, prx;
|
||||||
if (s > 0.0001f) {
|
if (s > 0.0001f) {
|
||||||
s = Math.abs(pa * pd - pb * pc) / s;
|
s = Math.abs(pa * pd * sy - pb * sx * pc) / s;
|
||||||
pa /= skeleton.scaleX;
|
|
||||||
pc /= skeleton.scaleY;
|
|
||||||
pb = pc * s;
|
pb = pc * s;
|
||||||
pd = pa * s;
|
pd = pa * s;
|
||||||
prx = atan2Deg(pc, pa);
|
prx = atan2Deg(pc, pa);
|
||||||
@ -441,10 +442,8 @@ public class Bone implements Updatable {
|
|||||||
switch (inherit) {
|
switch (inherit) {
|
||||||
case noRotationOrReflection: {
|
case noRotationOrReflection: {
|
||||||
float s = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc);
|
float s = Math.abs(pa * pd - pb * pc) / (pa * pa + pc * pc);
|
||||||
float sa = pa / skeleton.scaleX;
|
pb = -pc * skeleton.scaleX * s / skeleton.scaleY;
|
||||||
float sc = pc / skeleton.scaleY;
|
pd = pa * skeleton.scaleY * s / skeleton.scaleX;
|
||||||
pb = -sc * s * skeleton.scaleX;
|
|
||||||
pd = sa * s * skeleton.scaleY;
|
|
||||||
pid = 1 / (pa * pd - pb * pc);
|
pid = 1 / (pa * pd - pb * pc);
|
||||||
ia = pd * pid;
|
ia = pd * pid;
|
||||||
ib = pb * pid;
|
ib = pb * pid;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user