Ejemplo n.º 1
0
 public CCLabel(string str, string fntFile, float size, CCSize dimensions, CCLabelFormat labelFormat, CCPoint imageOffset, CCTexture2D texture)
 {
     this.labelFormat = labelFormat;
     if (labelFormat.FormatFlags == CCLabelFormatFlags.Unknown)
     {
         // First we try loading BitMapFont
         InitBMFont(str, fntFile, dimensions, labelFormat.Alignment, labelFormat.LineAlignment, imageOffset, texture);
     }
     else if (labelFormat.FormatFlags == CCLabelFormatFlags.BitmapFont)
     {
         // Initialize the BitmapFont
         InitBMFont(str, fntFile, dimensions, labelFormat.Alignment, labelFormat.LineAlignment, imageOffset, texture);
     }
     else if (labelFormat.FormatFlags == CCLabelFormatFlags.SpriteFont)
     {
         // Initialize the SpriteFont
         InitSpriteFont(str, fntFile, size, dimensions, labelFormat, imageOffset, texture);
     }
     else if (labelFormat.FormatFlags == CCLabelFormatFlags.SystemFont)
     {
         currentLabelType = CCLabelType.SystemFont;
         SystemFont       = fntFile;
         SystemFontSize   = size;
         Dimensions       = dimensions;
         AnchorPoint      = CCPoint.AnchorMiddle;
         Text             = str;
     }
 }
Ejemplo n.º 2
0
        protected void InitSpriteFont(string theString, string fntFile, float fontSize, CCSize dimensions, CCLabelFormat labelFormat,
                                      CCPoint imageOffset, CCTexture2D texture)
        {
            Debug.Assert((theString == null && fntFile == null) || (theString != null && fntFile != null),
                         "Invalid params for CCLabel SpriteFont");

            if (!String.IsNullOrEmpty(fntFile))
            {
                try
                {
                    FontAtlas = CCFontAtlasCache.GetFontAtlasSpriteFont(fntFile, fontSize, imageOffset);
                }
                catch {}

                if (FontAtlas == null)
                {
                    CCLog.Log("SpriteFont CCLabel: Impossible to create font. Please check file: '{0}'", fntFile);
                    return;
                }
            }

            AnchorPoint = CCPoint.AnchorMiddle;

            currentLabelType = CCLabelType.SpriteFont;

            if (String.IsNullOrEmpty(theString))
            {
                theString = String.Empty;
            }

            // Initialize the TextureAtlas along with children.
            var capacity = theString.Length;

            BlendFunc = CCBlendFunc.AlphaBlend;

            if (capacity == 0)
            {
                capacity = defaultSpriteBatchCapacity;
            }

            UpdateBlendFunc();

            // no lazy alloc in this node
            Children    = new CCRawList <CCNode>(capacity);
            Descendants = new CCRawList <CCSprite>(capacity);

            this.labelDimensions = dimensions;

            horzAlignment = labelFormat.Alignment;
            vertAlignment = labelFormat.LineAlignment;

            IsOpacityCascaded = true;

            ContentSize = CCSize.Zero;

            IsColorModifiedByOpacity = TextureAtlas.Texture.HasPremultipliedAlpha;
            AnchorPoint = CCPoint.AnchorMiddle;

            ImageOffset = imageOffset;

            Text = theString;
        }