修复空帧导致的包围盒计算错误
This commit is contained in:
@@ -110,20 +110,42 @@ namespace Spine
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int ii = 0; ii + 1 < verticesLength; ii += 2)
|
if (verticesLength > 0)
|
||||||
{
|
{
|
||||||
float vx = vertices[ii];
|
for (int ii = 0; ii + 1 < verticesLength; ii += 2)
|
||||||
float vy = vertices[ii + 1];
|
{
|
||||||
minX = Math.Min(minX, vx);
|
float vx = vertices[ii];
|
||||||
minY = Math.Min(minY, vy);
|
float vy = vertices[ii + 1];
|
||||||
maxX = Math.Max(maxX, vx);
|
minX = Math.Min(minX, vx);
|
||||||
maxY = Math.Max(maxY, vy);
|
minY = Math.Min(minY, vy);
|
||||||
|
maxX = Math.Max(maxX, vx);
|
||||||
|
maxY = Math.Max(maxY, vy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var boneX = slot.Bone.WorldX;
|
||||||
|
var boneY = slot.Bone.WorldY;
|
||||||
|
minX = Math.Min(minX, boneX);
|
||||||
|
minY = Math.Min(minY, boneY);
|
||||||
|
maxX = Math.Max(maxX, boneX);
|
||||||
|
maxY = Math.Max(maxY, boneY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
x = minX;
|
if (minX >= int.MaxValue || minY >= int.MaxValue || maxX <= int.MinValue || maxY <= int.MinValue)
|
||||||
y = minY;
|
{
|
||||||
w = maxX - minX;
|
x = self.X;
|
||||||
h = maxY - minY;
|
y = self.Y;
|
||||||
|
w = 0;
|
||||||
|
h = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = minX;
|
||||||
|
y = minY;
|
||||||
|
w = maxX - minX;
|
||||||
|
h = maxY - minY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user