Cocos2d-x教程(28)-ttf 字体库的使用

时间:2023-02-08 18:40:13

欢迎加入 Cocos2d-x 交流群: 193411763


转载请注明原文出处:http://blog.csdn.net/u012945598/article/details/37650843



通常为了使游戏界面更为美观,我们会选用某种字体来达到效果。今天要介绍的便是如何在iOS中引入ttf字体库文件(Cocos2d-x 原理相同)

在iOS中使用字体库的步骤如下(Android无需下述处理,可直接使用):
1.获取ttf字体库文件(网上搜索一搜一堆)

2.在Mac上安装字体库文件(主要用于获取该字体在系统中存放的英文名字,第四步也可达到同样效果)

3.找到项目中Info.plist文件并对其进行相应设置

4.在控制台打印字体库中所有字体名字,找到所添加字体库的英文名(此步骤非必要操作)

5.在代码中对Label控件进行使用


详细操作过程:

1.获取.ttf文件,该文件为笔者刚刚下载的一个ttf

Cocos2d-x教程(28)-ttf 字体库的使用


2.双击文件,点击安装字体。安装成功后点击屏幕右上角的搜索,输入"字体册"并打开,找到字体对应的英文名字留着备用。

  Cocos2d-x教程(28)-ttf 字体库的使用

Cocos2d-x教程(28)-ttf 字体库的使用


3. 找到你的工程资源文件夹下面的 fonts文件夹,Resources/fonts(此处笔者所用引擎为2.2.2版本,一般字体文件会放在此处保存,放在其它文件夹亦可,但要注意路径问题),然后将字体文件拷贝进去,之后找到Info.plist文件,打开并对其进行修改(Info.plist文件在2.2.1之前版本直接可以在Xcode中搜索到,2.2.2版本位于项目中的proj.ios文件夹中)。

Cocos2d-x教程(28)-ttf 字体库的使用

注意 Fonts provided by application 是需要手动添加的项,原本Info.plist中并没有。注意观察笔者在里面添加的item 0 以及item 1两项,之前将字体库文件放在了fonts文件夹中,所以填写的时候一定要将上级目录fonts加上,如item 1对应的写法,如果按照item 0的写法资源是加载不进去的,如果选择将字体库文件夹加到了别的路径下,一定要确保字体库文件的路径已经被加到了Copy Bundle Resources中。

Cocos2d-x教程(28)-ttf 字体库的使用



4.完成上述操作后字体库文件已经成功的被添加到你的项目中并可以使用了,但是在使用的时候还需要注意一点,字体的名字并非是你的文件对应的名字,而是在第二部中我们所看到的英文名,这里我们可以做一个测试,看看在程序中字体的真正名字到底是什么。打开AppController.mm文件(测试代码为OC语言,所以需要在混编文件中测试),在入口函数 didFinishLaunchingWithOptions 中加入如下代码:

    NSArray *familyNames = [UIFontfamilyNames];

    for(NSString *familyNamein familyNames)

    {

        NSLog(@"family name is %@", familyName);

        NSArray *fontNames = [UIFontfontNamesForFamilyName:familyName];

        for(NSString *fontNamein fontNames)

        {

            NSLog(@"\tfont name is %@", fontName);

        }

    }

这段代码会打印出所有的字体名字,然后我们在控制台进行搜索,看看有没有我们所添加的字体名。

Cocos2d-x教程(28)-ttf 字体库的使用


5.第四步是可以省略的一个步骤,主要用于测试。在项目中支持字体的控件有两种(2.x版本引擎),CCLabelTTF以及CocoStudio的Label控件。使用方法十分简单,CCLabelTTF的字体在create函数中即可设置,而Label需要使用setFontName()方法。

CCLabelTTF label =CCLabelTTF::create("标签名", "SentyMaruko-02-SP", 32);

Label * label=Label::create()

label->setFontName("SentyMaruko-02-SP")