cocos2d-x-3.0学习笔记之标签类
来源:互联网 发布:淘宝御泥坊适合年龄 编辑:程序博客网 时间:2024/05/29 18:43
游戏场景中的文字标签包括静态文字与动态文字,其中动态文字为美工在制作图片资源时就已经添加上去的文字,因为是图片的一部分,具有很强的随意性,可以是各种各样的文字,但是这种文字也是我们在程序里所不能修改的,动态文字则是我们可以在程序中进行控制的,而cocos2d-x一般是通过标签来实现。
cocos2d-x的标签类主要有三种:LabelTTF、LabAtlas和LabelBMFont,在3.0及以上的版本中,又推出了新的标签类Label。
1.LabelTTF:使用系统中的字体,继承关系如图。
如图所示,LabelTTF继承了Node类,具有节点的基本特性,同时也实现了LabelProtocol接口
示例代码如下:
auto label = LabelTTF::create("我是LabelTTF", "Arial", TITLE_FONT_SIZE); // position the label on the center of the screen label->setPosition(Point(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); // add the label as a child to this layer this->addChild(label, 1);
运行结果:
继续查看LabelTTF::create函数的源代码发现
static LabelTTF * create(const std::string& string, const std::string& fontName, float fontSize, const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::CENTER, TextVAlignment vAlignment = TextVAlignment::TOP);
发现create函数其实有6个参数,如果我们不设定则会有默认值,代表着标签的一些属性,例如位置信息之类的。
2.LabelAtlas:图片标签属性
这种标签显示的文字是从一个图片集中取出来的,因此需要加载图片集文件,LabelAtlas中的每个字符必须有固定的高度和宽度
LabelAtlas的运行效率比LabelTTF要快很多。
同样是继承了Node类,下面来实现一个例子:
auto labe1 = LabelAtlas::create("123 Test", "ttuffy_bold_italic-charmap.png",48,64,' '); addChild(labe1, 0); labe1->setPosition(Point(10, 100)); labe1->setOpacity(200); //设置透明度 // add the label as a child to this layer this->addChild(labe1); //参数以此为,要写的标签文字、字体文件、字体宽、高、起始字符
3.LabelBMFont:位图字体标签
使用位图标签类需要一个图片集(.png)和一个字符坐标文件(.fnt)
LabelBMFont中的每个字体宽度是可变的,LabelAtlas的运行效率比LabelTTF要快很多。类图如下所示
示例如下:
auto labe1 = LabelBMFont::create("HelloWorld", "fonts/BMFont.fnt"); addChild(labe1, 1); labe1->setPosition(Point(10, 100)); labe1->setOpacity(200); //设置透明度
4.Label 提供了更丰富的视觉效果
类图如下:
创建函数主要有一下几个
示例代码:
auto label1 = Label::create(); label1->setString("Default Font"); label1->setPosition( Point(size.width/2, size.height * 0.7) ); addChild(label1); auto label3 = Label::createWithSystemFont("Marker Felt","Marker Felt",32); label3->setPosition( Point(size.width/2, size.height * 0.5) ); addChild(label3);
- cocos2d-x-3.0学习笔记之标签类
- Cocos2d-x学习笔记之Cocos2d-x开发环境搭建
- cocos2d-x-3.0学习笔记之瓦片地图的使用
- cocos2d-x-3.0学习笔记之如何添加菜单按钮
- cocos2d-x-3.0学习笔记之如何设置滚动菜单栏
- cocos2d-x-3.0学习笔记之如何创建开关菜单
- cocos2d-x-3.0学习笔记之用户事件机制
- cocos2d-x-3.0学习笔记之贝塞尔曲线
- cocos2d-x-3.0学习笔记之std::function、std::bind
- 学习笔记cocos2d-x之项目分析
- 学习笔记cocos2d-x之元素介绍
- Cocos2d-x 学习笔记
- Cocos2d-x学习笔记
- Cocos2d-x学习笔记
- Cocos2d-x学习笔记
- cocos2d-x学习笔记
- cocos2d-x学习笔记
- cocos2d-x 学习笔记
- d3中图表大小自适应区域大小
- Android中的Toast的应用
- vs2010设置堆栈大小
- preview不显示并出现 Rendering Problems Failed to load the LayoutLib: com/android/layou
- numpy.ravel() vs numpy.flatten()
- cocos2d-x-3.0学习笔记之标签类
- 开发自己的模板引擎
- Android 6.0 运行时权限处理完全解析
- Android 重写 getViewTypeCount()数组越界异常
- Kafka Producer机制优化-提高发送消息可靠性
- MySqlParameter使用注意事项
- 不得不说的谷歌开发者模式:谷歌调试模式调试js代码总结
- angularjs数据绑定(data binding)
- Ubuntu安装PyCharm