类型:编程辅助大小:4.6M语言:中文 评分:10.0

标签:

立即下载

1.一些概念

ttf:true type font 它是用曲线方式描述字体轮廓,因此都可以输出很高质量的字形,即放大缩小看起也很清晰

bitmap font : 点阵字体 位图字体

atlas:词典意思是地图集, 我想它是用来表示多个图片拼在一起的感觉,

2.cocostudio中控件中相应的字体

Button:要求ttf格式字体,如果需要显示文字的话

AtlasLabel:要求一张0-9拼在一起的图片,比如显示数字1,则把图片对应部分取出来显示,数字本身相当于图片中的一个索引,不需要额外的映射关系文件,只要一张图片,并指明每个字符的宽高即可

BitmapLabel:需要一个字符对应到图片位置的表即 fnt文件,fnt文件里面包含了引用到图片的信息,各种显示参数等

3.fnt格式简述

fnt相当于一个配置文件,比如汉字“象”要用bitmap的方式显示。

象的unicode编码是8c61,转换为10进制为35937,再通过fnt文件找到id=35937的显示区域,最后把fnt对应图片相应区域扣出来显示

4.CCLabelTTF、CCLabelAtlas和CCLabelBMFont

1. CCLabelTTF

CCLabelTTF::labelWithString(const char *label,          //文字内容

const CCSize& dimensions,   //范围 CCSize(0,0)默认大小

CCTextAlignment alignment,  //对齐方式 0左 1中 2右

const char *fontName,       //字体名

float fontSize              //字号)

CCLabelTTF是CCTextureNode的子类,通过系统字体生成label。

CCLabelTTF对象渲染比较慢,每次调用setString的时候,一个新的OpenGL纹理将被创建,这意味着setString和创建一个新的标签一样慢,所以当需要频繁更新label的时候,应该选择另外两种文字类。

由于CCLabelTTF这个类使用的是系统中的字体,不需要额外往项目文件中添加字体文件。但如果你有自定义的字体也可以加到项目中,如果无法使用,可以查看一下ccConfig.h中的CC_FONT_LABEL_SUPPORT是否enable了。

2. CCLabelAtlas

CCLabelAtlas::labelWithString(const char *label,         //标签文字内容

const char *charMapFile,   //图片路径

unsigned int itemWidth,    //元素的宽度

int unsigned itemHeight,   //高度

unsigned char startCharMap //起始的字符)

引擎模板里面左下角显示帧率的数字,就是利用CCLabelAtlas来实现的。因为帧率一直在变。

每个字符的高度和宽度不能设置错误,否则显示的时候可能就不对了。最后一个起始的字符用来对应字符和图像的关系的。

3. CCLabelBMFont

CCLabelBMFont::labelWithString(const char *str,

const char *fntFile)

它是CCSpriteSheet的一个子类,对每一个字符就像一个CCSprite来对待,因此每个单独的字符可以进行旋转、缩放、设置透明等操作。

所有字符都是使用anchorPoint(0.5, 0.5),所以最好不要更改它,会影响渲染。

使用该类之前,需要添加好字体文件,包括一个图片文件(AA.png)和一个字体坐标文件(AA.fnt)。两个文件的名称相同,只是扩展名不同。

cocos2dx的ttf字体显示

方法:

一.在info.plist上面添加Fonts provided by application 如下图,然后下面添加对应的字体:

ps:以下非常重要!

1.字体不要添加文件夹路径。。。。。直接字体文件名包括扩展名就行了,

例如字体在Resource/fonts/DPCarved.ttf,不要写fonts/DPCarved.ttf,按照我上面就行了

2.注意到我上面标红了的文字吗:Fonts provided by application 这里是有s的,网上面一堆不负责的文章图片中有s,文章字里面就Font provided by application,坑死啦,程序员应该知道一个字母或者大小写的差别吧?

仔细再截图说明一下

这个info.plist 中如果是Fonts provided by application,其文本是如下:

看到吧,文本中并不是显示Fonts provided by application的!!

而info.plist 中如果是Font provided by application,其文本是如下:

看到差别了吧。。。。

二.代码中应用

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "DPCarved", 40);

则可

这里重点要说一下第二个参数这个font family的名称(上面标红的参数):

举例说上面的微软雅黑.ttf

很多人说mac中字体工具就能看到这个值,如下图:

其实这是错的!!!

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "微软雅黑", 40);//这是显示不出来的

事实上需要这样才能显示出来:

CCLabelTTF *label = CCLabelTTF::create("中文exp:+1234567", "Microsoft Yahei", 40);

至于如何找这个font family出来。。。暂时我也没什么好方法。。。比较笨的只知道GlyphDesigner这个程序能找到字体的font-family,如下图

cocos2dx 3.0 TTF中文字体的使用说明

Q: 在cocostudio中显示TTF中文字体的方法

A:引入的TTF文件要求字体内部名和文件名都相同,可以使用Font Creator 软件打开TTF文件,选择Format菜单下的Name命令查看并修改,吃不准的话就把所有的中文都改成和英语,最后记得把文件名也改成一样的,这样cocostudio才能正确读取

Q: VS中中文硬编码显示乱码的问题

A:label->setText("李四"); 比如这样,默认肯定是会显示乱码的,必须把文件设置为UTF8格式保存。在VS的文件-》高级保存设置 中,选择编码为 UTF8-无签名 ,就能正确显示

Q:3.0中UILable 控件改名问题

A: 3.0里面UILable变成了 Text,而不是Label

cocos2dx ttf字体 android,cocos2dx 字体文件、cocos2dx的ttf字体显示相关推荐

  1. cocos2dx ttf字体 android,cocos2dx2.2.2中使用ttf字体

    在iOS,android和windows下使用ttf字体的套路都稍微有点不同,具体在下面几个方面: 1)安装: windows平台    使用ttf字体时如系统字库中未安装该字体,则需右键点击字体文件 ...

  2. android 字体文件压缩,Android创建assets文件夹并使用字体图标(Icon Font)

    首先我们要知道如何在AS中新建引用assets文件 1.将项目切换到Project模式 Project.png 2.要注意assets文件夹要跟Java文件在同一目录下,都包含在main的文件下面. ...

  3. android dialog 字体,android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)

    AlertDialog.Builder使用 AlertController.AlertParams构建对话框.我检查了AlertDialog.Builder #create()调用AlertContr ...

  4. android显示服务器端文件夹,Android上传文件到服务端并显示进度条

    最近在做上传文件的服务,简单看了网上的教程.结合实践共享出代码. 由于网上的大多数没有服务端的代码,这可不行呀,没服务端怎么调试呢. Ok,先上代码. Android 上传比较简单,主要用到的是 Ht ...

  5. Android——下载apk文件,并在通知栏显示下载进度

    如何下载apk文件?这里介绍两种方式:一通过异步任务读取文件,二利用系统方法DownloadManager进行下载. 通过异步任务下载apk 文件 public String downloadAsAp ...

  6. android xml黑体字_Android开发之字体设置

    默认字体 Android SDK自带了四种字体:"normal""monospace","sans", "serif", ...

  7. android.mk 冒号,android学习-ndk-build(androidstudio编译cocos2d-x库的cpp为so文件的解释)

    本文不作为ndk初学使用,只是对cpp等c++文件编译成so文件的过程中,参数含义,及ndk配置的解释.使用的技术比较旧. androidStudio使用gradle调用ndk-build工具编译c+ ...

  8. Cocos2d-x 3.X, Android Studio版添加广点通广告平台

    考虑到以下两点: 1. Cocos2d-x从3.7版开始优化对Android Studio的支持,相信这一趋势还会继续.可惜目前相关帮助文档还不完善,很多东西需要自己摸索. 2. 广点通广告平台的官方 ...

  9. cocos2d-x 3.0rc2中读取sqlite文件

    cocos2d-x 3.0rc2中读取sqlite文件的方式,在Android中直接读取软件内的会失败.须要复制到可写的路径下 sqlite3* dbFile = NULL;std::string p ...

最新文章

  1. 简述平均池化和最大池化
  2. 十七、字符类 GPIOS
  3. 毁掉云计算项目的三个“好办法”
  4. java url no protocol_httpurlconnection 新人使用遇到错误java.net.MalformedURLException: no protocol...
  5. Replacing the ESXi Host Default Certificate with a CA-Signed Certificate
  6. oracle自带的加密函数,oracle 的加密解密函数
  7. jvm类加载过程_JVM类生命周期概述:加载时机与加载过程
  8. 守护进程实现时间服务器
  9. 关于seata分布式事务框架的几个问题
  10. linux C 语言的 system
  11. 为什么像王者荣耀这样的游戏Server不愿意使用微服务?
  12. unity mysql 中文乱码_解决Unity3D中文乱码问题
  13. 清华大学计算机音乐,校长杯十强故事汇 || DeepMusic:音乐也能如此“深邃”
  14. 如何将网址链接生成在微信可跳转的网址二维码
  15. android批量转换图片格式,批量图片格式转换器
  16. 2022年全球市场聚苯硫醚纤维总体规模、主要生产商、主要地区、产品和应用细分研究报告
  17. 【发现】中国与日德最可怕的差距,看着寒心
  18. 树莓派安装FISCO-BCOS
  19. 关于Oracle SQL中系统时间和库里数据时间的比较
  20. 在互联网上传输文件 —— FTP协议

热门文章

  1. 利用matlab对彩色图像打马赛克
  2. js 获取删除cookie
  3. 在线翻译网站的介绍内容
  4. 钢铁电商行业方案:钢铁工业产品全生命周期管理解决方案
  5. angular 阻止冒泡
  6. did you specify the right host or port?
  7. 详细讲解如何用爬虫工具批量采集阿里巴巴商品数据
  8. Fiddler——修改数据信息
  9. 实验1matlab运算基础,实验1MATLAB运算基础实验报告模板.doc
  10. 服务器主板信息花屏,显示设备出现问题:各种花屏_主板_主板评测-中关村在线...