protected internal virtual void drawBones(Com.Brashmonkey.Spriter.player.SpriterAbstractPlayer player) { for (int i = 0; i < player.getBonesToAnimate(); i++) { Com.Brashmonkey.Spriter.objects.SpriterBone bone = player.getRuntimeBones()[i]; if (bone.active) { this.setDrawColor(1, 0, 0, 1); } else { this.setDrawColor(0, 1, 1, 1); } float xx = bone.getX() + (float)System.Math.Cos(DegreeToRadian(bone.getAngle ())) * 5; float yy = bone.getY() + (float)System.Math.Sin(DegreeToRadian(bone.getAngle ())) * 5; float x2 = (float)System.Math.Cos(DegreeToRadian(bone.getAngle() + 90)) * (SpriterCalculator.BONE_WIDTH / 2) * bone.getScaleY(); float y2 = (float)System.Math.Sin(DegreeToRadian(bone.getAngle() + 90)) * (SpriterCalculator.BONE_WIDTH / 2) * bone.getScaleY(); float targetX = bone.getX() + (float)System.Math.Cos(DegreeToRadian(bone.getAngle ())) * SpriterCalculator.BONE_LENGTH * bone.getScaleX(); float targetY = bone.getY() + (float)System.Math.Sin(DegreeToRadian(bone.getAngle ())) * SpriterCalculator.BONE_LENGTH * bone.getScaleX(); float upperPointX = xx + x2; float upperPointY = yy + y2; this.drawLine(bone.getX(), bone.getY(), upperPointX, upperPointY); this.drawLine(upperPointX, upperPointY, targetX, targetY); float lowerPointX = xx - x2; float lowerPointY = yy - y2; this.drawLine(bone.getX(), bone.getY(), lowerPointX, lowerPointY); this.drawLine(lowerPointX, lowerPointY, targetX, targetY); this.drawLine(bone.getX(), bone.getY(), targetX, targetY); } }