zoukankan      html  css  js  c++  java
  • Cocos2d-x学习笔记(十二)之 文本渲染类

      在游戏中,文字占有很重要的位置,游戏的介绍、游戏中的提示和对话等都需要用到文字。Cocos2d-x在文字渲染方面提供了非常灵活的机制,既可以直接使用系统字,也可以自渲染字体,文本渲染类的继承关系如下:

      CCLabelAtlas、CCLabelBMFont、CCLabelTTF-->CCLabelProtocol。      CCTextFieldTTF-->CCLabelTTF。

      1、CCLabelAtlas类

      CCLabelAtlas类是使用图片作为文字的一种方式,该类可以通过图片直接定义。使用示例如下:

     1 //创建CCLabelAtlas实例,参数:要显示的文字字符串、图片路径、字符宽度、字符高度、起始字符。
     2 CCLabelAtlas* label = CCLabelAtlas::create( "123", "fonts/charmap.png", 48, 64, " " );
     3 
     4 //CCLabelAtlas类也可以使用plist配置文件的描述来定义
     5 CCLabelAtlas* label = CCLabelAtlas::create( "123", "fonts/charmap.plist");
     6 
     7 //使用CCLabelAtlas字体时,还可以定义颜色、透明度等参数,甚至文字标签页可以运动动作。
     8 label->setColor( ccRED );
     9 
    10 //设置动作
    11 CCActionInterval* fade = CCFadeOut::create(1.0f);
    12 CCActionInterval* fade_in = fade->reverse();
    13 CCFiniteTimeAction* seq = CCSequence::create(fade, fade_in, NULL);
    14 CCAction* repeat = CCRepeatForever::create((CCActionInterval*)seq);
    15 label->runAction( repeat );

      2、CCLabelTTF类

      CCLabelTTF类是通过系统字来实现字体标签的,使用示例如下:

    1 //创建CCLabelTTF类实例,参数:标签文字内容、范围大小、对齐方式、字库名称、字号
    2 CCLabelTTF* ttf = CCLabelTTF::create( "cclabel ttf", CCSizeMake(256, 32), kCCTextAlignmentLeft, "Helvetica", 12 );

      对齐方式可以为kCCTextAlignmentLeft(靠左对称)、kCCTextAlignmentCenter(靠中心对称)、kCCTextAlignmentRight(靠右对称)等。还可以通过设置setAnchorPoint设置整个字符串的锚点。

      CCTextFieldTTF类是CCLabelTTF类的子类,它是输入框使用的文字标签,使用示例如下:

    1 //创建CCTextFieldTTF类实例,参数:字符串、字体名称、字号
    2 CCTextfieldTTF* textField = CCtextfieldTTF::create( "click here for input", FONT_NAME, FONT_SIZE );

      CCLabelTTF速度偏慢,尽量使用另外的字体。

      3、CCLabelBMFont类

      CCLabelBMFont类也是文字渲染标签类。CCLabelBMFont类中的每个字都是一个精灵类,意味着每个字都可以有自己的旋转动作,并且支持FNT类型的文件。使用示例如下:

    1 //创建CCLabelBMFont类实例,参数:显示的文字、FNT文件。可以给它设置锚点,也可以设置运动动作。
    2 CCLabelBMFont* label = CClabelBMFont::create( "cclabel bmfont", "fonts/font.fnt" );
    3 
    4 label->setAnchorPoint(cpp(0,0));
    5 
    6 //可以获得单个文字,并可以为单个文字设置动作等。
    7 CCSprite* char = (CCSprite*)label->getChildByTag(0);

      生成FNT配置文件的工具不同的有不同的工具,大家可以到网上去查找自己使用的平台的对应的工具安装并使用,这里就不介绍了。

  • 相关阅读:
    面试题:使用存储过程造10w条测试数据,数据库插入10w条不同数据
    面试题:如何造10w条测试数据,在数据库插入10w条不同数据
    httprunner 2.x学习9-生成测试报告ExtentReport('dict object' has no attribute 'meta_data'问题已解决)
    httprunner 2.x学习8-参数化(引用 debugtalk 函数)
    httprunner 2.x学习7-参数化(引用外部csv数据)
    httprunner 2.x学习6-参数化与数据驱动
    httprunner 2.x学习5-测试用例集(testsuite)
    httprunner 2.x学习4-测试用例分层
    启动Hadoop HA Hbase zookeeper spark
    如何运行Spark程序
  • 原文地址:https://www.cnblogs.com/atong/p/3275260.html
Copyright © 2011-2022 走看看