cocos2d-x的初步学习四

在这篇文章中,我介绍下cocos2dx中显示文字的三中方法,毕竟显示文字很常见,好了,CCLabelTTF,CCLabelAtlas,CCLabelBMFont。好了废话少说,我直接上代码:

 //CCLabelTTF,字体用的是系统的,如果想用自定义的,需自己加载字体.ttf
    CCLabelTTF *nameTTF=CCLabelTTF::create("大帝", "ArialRoundedMTBold", 50);
    
    nameTTF->setPosition(ccp(200, size.height-200));
    
    //设置颜色
    nameTTF->setColor(ccc3(255, 0, 0));
    
    this->addChild(nameTTF, 1);

    //改变字符串,每次调用SetString一个新的OpenGL纹理将被创建,这意味着SetString与创建一个新的CCLabel一样慢。所以,如果你需要经常更新CCLabel对象,不要使用它,而是考虑使用CCLabelAtlas或CCBitmapFontAtlas来代替。
    nameTTF->setString("新大帝");
    
    
    //CCLabelAtlas,第一个参数是你要显示的字符,第二个参数是字符的图像,它是根据ASCII码排序的,第三个参数是每个字符的宽度,第四个参数是每个字符的高度,最后一个参数是你图像上的第一个字符
    CCLabelAtlas *nameAtlas=CCLabelAtlas::create("10", "small_blue_number_level-hd.png", 16, 20, '0');

    nameAtlas->setPosition(ccp(350, size.height-200));
    nameAtlas->setScale(2.0);
    this->addChild(nameAtlas, 1);
    
    //改变字符,基本没什么消耗
   // nameAtlas->setString("13");

    
    //CCLabelBMFont,需要一个.fnt文件跟一个对应的png图像文件,可以把它理解为一个CCSpriteBatchNode,其实它就是继承CCSpriteBatchNode的
    CCLabelBMFont *nameBMFont=CCLabelBMFont::create("Tracy","font09.fnt");
    
    nameBMFont->setPosition(ccp(520, size.height-200));
    nameBMFont->setScale(2.0);
    this->addChild(nameBMFont, 1);
    

    //得到每个字符,就像操作精灵一样
    CCSprite *char_A=(CCSprite *)nameBMFont->getChildByTag(0);

效果如下图:

最后附上系统自带的字体:

 //AppleGothic
    //HiraKakuProN-W6
    //HiraKakuProN-W3
    //MarkerFelt-Thin
    //STHeitiK-Medium
    //STHeitiK-Light
    //TimesNewRomanPSMT
    //Helvetica-Oblique
    //Helvetica-BoldOblique
    //Helvetica
    //Helvetica-Bold
    //TimesNewRomanPS-BoldMT
    //TimesNewRomanPS-ItalicMT
    //TimesNewRomanPS-BoldItalicMT
    //Verdana-Bold
    //Verdana-BoldItalic
    //Verdana
    //Verdana-Italic
    //Georgia-Bold
    //Georgia
    //Georgia-BoldItalic
    //Georgia-Italic
    //ArialRoundedMTBold
    //TrebuchetMS-Italic
    //TrebuchetMS
    //Trebuchet-BoldItalic
    //TrebuchetMS-Bold
    //STHeitiTC-Light
    //STHeitiTC-Medium
    //GeezaPro-Bold
    //GeezaPro
    //Courier
    //Courier-BoldOblique
    //Courier-Oblique
    //Courier-Bold
    //ArialMT
    //Arial-BoldMT
    //Arial-BoldItalicMT
    //Arial-ItalicMT
    //STHeitiJ-Medium
    //STHeitiJ-Light
    //ArialHebrew
    //ArialHebrew-Bold
    //CourierNewPS-BoldMT
    //CourierNewPS-ItalicMT
    //CourierNewPS-BoldItalicMT
    //CourierNewPSMT
    //Thonburi-Bold
    //AmericanTypewriter
    //AmericanTypewriter-Bold
    //STHeitiSC-Medium
    //STHeitiSC-Light
    //HelveticaNeue
    //HelveticaNeue-Bold

  

原文地址:https://www.cnblogs.com/henrendadi/p/3139684.html