cocos2d-x学习之添加显示文字
cocos2d 中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
在 cocos2d 中有三个类可以在层或精灵中添加文字:
- CCLabelTTF
- CCLabelBMFont
- CCLabelAtlas
CCLabelTTF
CCLabelTTF <wbr>每次调用 setString (即改变文字)的时候,一个新的OPENGL纹理将会被创建.。这意味着setString 和创建一个新的标签一样慢。所以,<span style="color:red">当你需要频繁的更新它们的时候,尽可能的不用去使用标签对象。 <wbr>而应该使用CCLabelAtlas或者是CCLabelBMFont。</wbr></span>OK, 看下它的使用方法 </wbr>
<wbr></wbr>
CCLabelTTF *label = <wbr>CCLabelTTF::labelWithString("hello world", CCSizeMake(100, 25), (CCTextAlignment)intAlign, strFontName, fontSize);</wbr>
label->setAnchorPoint(ccp(0, 0));
label->setPosition = ccp(100,100);
这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。 <wbr><wbr></wbr></wbr>
<wbr></wbr>
CCLabelBMFont
CCLabelBMFont <wbr></wbr>相当于每次改变只改变了图片坐标,而CCLabelTTF要重新渲染.这个类使用之前,需要添加好字体文件,包括一个图片文件 (**.png) 和一个字体坐标文件(**.fnt)。使用方法:
<wbr></wbr>
假设字体文件为:fonts/bmFont.fnt
<wbr></wbr>
CCLabelBMFont *label CCLabelBMFont::labelWithString("hello world", "fonts/bmFont.fnt");
layer->addChild(label);
label->setAncherPoint(ccp(0, 0));
label->setPosition(ccp(100,100));
label->setString(" "); <wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr></wbr></wbr>
这个没办法指定字体的字号,但可以用 scale 属性进行缩放来调整大小。就当它是sprite。
<wbr></wbr>
CCLabelAtlas <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
如果你用cocos2d项目模板创建过项目,那么你已经看过它的效果了,就是左下角显示帧率的数字。因为帧率一直在变,使用CCLabelTTF的话效率太低,因为只是数字所以也犯不上使用CCLabelBMFont 加载那么大的文字图像,所以使用这个比较合适。
<wbr></wbr>
CCLabelAtlas *label = CCLabelAtlas::labelWithString(labelWithString, charMapFile, itemWidth, itemHeight, startChar); <wbr></wbr>
<wbr></wbr>
这个只能显示图像上面的字符。
解释一下参数,
<wbr><wbr><wbr><wbr><wbr><wbr>labelWithString就是字符,</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>charMapFile 就是字符的图像文件(这个只要图像文件就可以了),</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>itemWidth是每个字符的宽度,</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>itemHeight是每个字符的高度,这个不能设错,否则显示的时候可能就不对了。</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>最后一个是起始字符,它是使用这个其实字符来对应字符和图像关系的。</wbr></wbr></wbr></wbr></wbr></wbr>
cocos2d-x学习之添加显示文字相关推荐
- python文字游戏 生成数字菜单_pygame游戏之旅 游戏中添加显示文字
本文为大家分享了pygame游戏之旅的第5篇,供大家参考,具体内容如下 在游戏中添加显示文字: 这里自己定义一个crash函数接口: def crash(): message_diaplay('You ...
- cocos中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
CCLabelTTF CCLabelTTF 每次调用 setString (即改变文字)的时候,一个新的OPENGL 纹理将会被创建..这意味着setString 和创建一个新的标签一样慢. 这个类使 ...
- cocos2d-x 中添加显示文字的三种方式 LabelTTF 、LabelBMFont 和 LabelAtlas
在 cocos2d-x 中有三个类可以在层或精灵中添加文字: LabelTTF LabelBMFont LabelAtlas LabelTTF 直接支持使用 TTF 字库,可以支持全部的中文,但是效率 ...
- PyQt5随笔:QTextEdit、QTextBrowser添加的文字超出视图后,滑动条自动移至最底部,显示最新文本解决
PyQt5随笔:QTextEdit.QTextBrowser添加的文字超出视图后,滑动条自动移至最底部,显示最新文本解决 1.前言 QTextEdit/QTextBrowser设置文本的简单函数:se ...
- Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)
Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...
- 百度地图添加文本标注显示文字
一.业务场景 通过百度地图API的 label 添加文本覆盖物,用于显示 marker点位的描述信息.并控制 label 的显示,鼠标移入点位的时候显示文字,不移入点位的时候不显示文字.去掉背景颜色框 ...
- CSS学习笔记:以图片作背景显示文字
hello,大家好,我是wangzirui32,今天我们来学习如何以图片作背景显示文字. 开始学习吧! 先来看看效果: 是不是特别好看,其HTML代码如下: <!DOCTYPE html> ...
- DX9显示文字-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(14)
DX9显示文字 创建Form1,输入以下源码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体的 BorderStyle 设置为"Fixed singl ...
- opengl学习之显示文字
本课我们来谈谈如何显示文字. OpenGL并没有直接提供显示文字的功能,并且,OpenGL也没有自带专门的字库.因此,要显示文字,就必须依赖操作系统所提供的功能了. 各种流行的图形操作系统,例如Win ...
最新文章
- centos装oracle6,CentOS-6.7下安装Oracle11g
- 这个云代驾,你打几分
- 如何利用报表工具FineReport实现报表列的动态展示
- H3 BPM MVC表单SheetOffice控件使用分享
- excel有必要用python_为什么Python比VBA更适合自动化处理Excel数据?
- gerber文件怎么导贴片坐标_SMT贴片机在线编程调试
- PHP 读取JSON数据
- Google人工智能面试·真·题(附参考答案+攻略)
- Access(JET-SQL)问题集锦
- 【原创】软件测试基础流程
- 算法:同构字符串205. Isomorphic Strings
- 如何从网页上下载页面嵌入的PDF文件
- 10万+标注数据开放!驾驶员不良驾驶识别/电动车进电梯检测/渣土车车牌识别/反光衣识别等8大赛题详解来了!...
- 线程停止(stop/intrrupt)
- 游戏开发设计模式:单例模式
- 大数据常见错误及解决方案
- 打开excel提示损坏的映像的解决办法
- 牛客网Java选择题练习
- 大恒水星相机+opencv4.0.1保存视频
- Linux 时间、时区设置
热门文章
- 华为机试HJ26:字符串排序
- 华为机试HJ23:删除字符串中出现次数最少的字符
- 一维稳态导热的数值计算c语言,传热传质上机实习题(参考资料C语言)
- vue 多个api请求_Vue+Django REST framework实战3.RESTful API和VUE目录结构
- wpf使用入式mysql_c#之wpf:从mysql数据库中数据绑定到页面上
- ubuntu16.04安装pycharm,并设置快捷启动方式
- 面试高级测试工程师修炼之接口测试平台开发
- mysql查询结果做表_MySQL将一个表的查询结果作为本表的查询条件更新数据
- ffmpeg拉流设置暂停_ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
- void* 与 shared_ptr的相互转换