cocos2dx项目中应用ttf字体

本文介绍了在使用cocos2dx进行跨平台项目开发时遇到的字体适配问题,特别是iOS与Android平台字体资源的差异。提供了在iOS平台成功实现自定义字体的方法,包括字体文件的选择、安装步骤及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近项目里在搞字体,由于项目是用cocos2dx做的跨平台的项目,所以就涉及到不同平台字体设定的问题,IOS这边字体库比较丰富,可以有很多种字体,但是安卓那边就比较捉襟见肘了,大概了解了下两个平台能提供的字体:

IOS:由于传输图片太墨迹了,我还是上网址吧,大家可以看到IOS这边所有字体的范本加上字体名字:http://www.2cto.com/kf/201306/217730.html

Android:

Clockopia.ttf 系统默认待机时钟字体

DroidSans.ttf 系统默认英文字体

DroidSans-Bold.ttf 系统默认英文粗字体

DroidSansFallback.ttf 系统默认中文字体


图片如下:下面分别是DroidSans,DroidSansFallback,DroidSans-Bold

在用户不更改系统字体库的情况下,只有这个字体。

那么对于美术设计的各种各样的字体实现起来就会很为难。如果是用系统字体,那么效果实在是太呆板,就连arial字体都没有;如果都采用BFFont作为label,那么图片得成本还太大,因为游戏肯定是多语言的,那么对于多个语言,字体库的统计就是个很为难的问题。

在此,我给兄弟们给出另外一个出路。大家可能看到了,在安卓那边提到了字体文件都是.ttf那么,ttf的文件是否也能在ios上应用呢?如果可以的话就能在不同平台上统一字体了,这样就不用担心很多没必要的字体大小,样式不统一的问题。

我去网上搜了下很多帖子,其实众说纷纭,我也试了很多,我这里给大家说下我自己成功的应用:

第一下载字体文件,ttf格式的字体文件,在此不要担心字体好不好看,目前就是我们可以将字体替换到工程中就是成功的,至于挑字体的事情以后再说。


我选择了一个这样的字体,这个已经是加入到项目中了。

那么这个字体长什么样子呢?


mac上,双击字体文件,点击安装字体:


希望大家注意我两个红色圈住的地方,在右侧被圈住的地方是这个字体真正得名字,切记切记。

下一步就是把这个字体添加到你Xcode的工程中:

Xcode每个工程都会有对应工程名字的info.plist文件,首先找到它,找到“Fonts provided by application”这一项,没有是吧?有的就先放着,如果没有,添加一项,设置类型是array,然后向里面添加子项:


我之前看有人说,item1里面得fonts要加s,有的不要加s,还有说在字体文件前面需不需要加上级文件夹的(也就是“fonts/”),还有“Fonts provided by application”,也有人说加不加s得问题,目前大家看到的就是我项目里真实得东西,我就是这么做的,我两个都加s了,并且我已经加上了针对Resource目录的子路径,即真实路径是在你工程下的“Resource/fonts/方正卡通简体.ttf”,然后下一步我也不用多说了吧,那就是将这个文件添加进你的工程,目录就是上面的目录,记住,要记得勾选拷贝item到工程对应目录下,否则你ttf文件一动地方就找不到了。我工程里面字体文件的位置截图在上面已经粘贴过了,想看的可以回头去瞧瞧。

编译,run,通过了,好啦;

下面就要开始应用了:

代码中写入:

    CCLabelTTF *label =CCLabelTTF::create("汉体书写信息技术标准相", "FZKATJW--GB1-0", 32);

    label->setPosition(ccp(200, 500));

    this->addChild(label);

this在我这边是一个测试layer;

真实效果

这个就是对应的字体了。

注意上面的labelcreate的时候,字体的名字是我最开始让你注意的,在两个红圈里面得信息。

目前我只是在ios这边实验成功,安卓那边我还没有开始着手看怎么做,希望可以帮助现在正在纠结这个问题得同学。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值