• 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
    

      

  • 相关阅读:
    修改hosts文件
    什么时候集合不可以插入空值
    OL2中实现百度地图ABCD marker的效果
    OL3实现多图联动
    Arcgis for javascript实现百度地图ABCD marker的效果
    OL记载Arcgis Server切片
    postgis常用函数介绍(二)
    postgis常用函数介绍(一)
    共享个地图控件的样式
    OpenLayers3基础教程——OL3 介绍interaction
  • 原文地址:https://www.cnblogs.com/henrendadi/p/3139684.html
Copyright © 2020-2023  润新知