diff --git a/spine-csharp/src/Animation.cs b/spine-csharp/src/Animation.cs index cb824f0df..2fdbebc5d 100644 --- a/spine-csharp/src/Animation.cs +++ b/spine-csharp/src/Animation.cs @@ -637,10 +637,6 @@ namespace Spine { frames = new float[frameCount * 3]; } - public float[] getFrames () { - return frames; - } - /** Sets the time, mix and bend direction of the specified keyframe. */ public void setFrame (int frameIndex, float time, float mix, int bendDirection) { frameIndex *= 3; diff --git a/spine-csharp/src/Bone.cs b/spine-csharp/src/Bone.cs index fdad97882..058493342 100644 --- a/spine-csharp/src/Bone.cs +++ b/spine-csharp/src/Bone.cs @@ -134,8 +134,8 @@ namespace Spine { float m00 = this.m00, m10 = this.m10, m01 = this.m01, m11 = this.m11; Skeleton skeleton = this.skeleton; if (skeleton.flipX != (skeleton.flipY != yDown)) { - m00 *= -1; - m11 *= -1; + m00 = -m00; + m11 = -m11; } float invDet = 1 / (m00 * m11 - m01 * m10); localX = (dx * m00 * invDet - dy * m01 * invDet); diff --git a/spine-csharp/src/IkConstraint.cs b/spine-csharp/src/IkConstraint.cs index 5a6160842..6261e083a 100644 --- a/spine-csharp/src/IkConstraint.cs +++ b/spine-csharp/src/IkConstraint.cs @@ -38,8 +38,8 @@ namespace Spine { internal IkConstraintData data; internal List bones = new List(); internal Bone target; - internal int bendDirection = 1; - internal float mix = 1; + internal int bendDirection; + internal float mix; public IkConstraintData Data { get { return data; } } public List Bones { get { return bones; } } @@ -48,6 +48,8 @@ namespace Spine { public float Mix { get { return mix; } set { mix = value; } } public IkConstraint (IkConstraintData data, Skeleton skeleton) { + if (data == null) throw new ArgumentNullException("data cannot be null."); + if (skeleton == null) throw new ArgumentNullException("skeleton cannot be null."); this.data = data; mix = data.mix; bendDirection = data.bendDirection; diff --git a/spine-csharp/src/Skeleton.cs b/spine-csharp/src/Skeleton.cs index 02aa9653f..359b41afd 100644 --- a/spine-csharp/src/Skeleton.cs +++ b/spine-csharp/src/Skeleton.cs @@ -37,7 +37,7 @@ namespace Spine { internal List bones; internal List slots; internal List drawOrder; - internal List ikConstraints = new List(); + internal List ikConstraints; private List> boneCache = new List>(); internal Skin skin; internal float r = 1, g = 1, b = 1, a = 1; @@ -74,12 +74,9 @@ namespace Spine { bones = new List(data.bones.Count); foreach (BoneData boneData in data.bones) { Bone parent = boneData.parent == null ? null : bones[data.bones.IndexOf(boneData.parent)]; - bones.Add(new Bone(boneData, this, parent)); - } - - foreach(Bone b in bones){ - if(b.Parent != null) - b.Parent.children.Add(b); + Bone bone = new Bone(boneData, this, parent); + if (parent != null) parent.children.Add(bone); + bones.Add(bone); } slots = new List(data.slots.Count); diff --git a/spine-csharp/src/SkeletonData.cs b/spine-csharp/src/SkeletonData.cs index edc5d648b..48b500363 100644 --- a/spine-csharp/src/SkeletonData.cs +++ b/spine-csharp/src/SkeletonData.cs @@ -136,7 +136,7 @@ namespace Spine { return null; } - // --- IK + // --- IK constraints. /// May be null. public IkConstraintData FindIkConstraint (String ikConstraintName) { diff --git a/spine-csharp/src/SkeletonJson.cs b/spine-csharp/src/SkeletonJson.cs index 8ad08bb6e..57784e5d5 100644 --- a/spine-csharp/src/SkeletonJson.cs +++ b/spine-csharp/src/SkeletonJson.cs @@ -96,7 +96,7 @@ namespace Spine { skeletonData.hash = (String)skeletonMap["hash"]; skeletonData.version = (String)skeletonMap["spine"]; skeletonData.width = GetFloat(skeletonMap, "width", 0); - skeletonData.height = GetFloat(skeletonMap, "width", 1); + skeletonData.height = GetFloat(skeletonMap, "height", 0); } // Bones. diff --git a/spine-libgdx/src/com/esotericsoftware/spine/Bone.java b/spine-libgdx/src/com/esotericsoftware/spine/Bone.java index 6022a6fc3..d2e81bea8 100644 --- a/spine-libgdx/src/com/esotericsoftware/spine/Bone.java +++ b/spine-libgdx/src/com/esotericsoftware/spine/Bone.java @@ -264,8 +264,8 @@ public class Bone { float m00 = this.m00, m10 = this.m10, m01 = this.m01, m11 = this.m11; Skeleton skeleton = this.skeleton; if (skeleton.flipX != skeleton.flipY) { - m00 *= -1; - m11 *= -1; + m00 = -m00; + m11 = -m11; } float invDet = 1 / (m00 * m11 - m01 * m10); world.x = (x * m00 * invDet - y * m01 * invDet);