最近项目里在搞字体,由于项目是用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这边实验成功,安卓那边我还没有开始着手看怎么做,希望可以帮助现在正在纠结这个问题得同学。