最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
cocos2d-x 开发去哪里下载字体库
对于刚开始学习Cocos2d-x开发的朋友来说,可能不知道去哪里下载字体库,也不清楚如何在项目中使用这些字体库。本文将先介绍Cocos2d-x支持的字体情况,然后详细说明在iOS中引入ttf字体库文件的步骤(Cocos2d-x原理相同,Android可直接使用字体库,无需下述处理)。
一、Cocos2d-x支持的字体
在Cocos2d-x开发中,为了使游戏界面更为美观,我们常常会选用特定的字体。了解Cocos2d-x支持的字体类型,有助于我们更好地开展后续工作。
二、在iOS中使用字体库的步骤
1. 获取ttf字体库文件
可以通过在网上搜索来获取ttf字体库文件,网络上有大量的资源可供选择。
2. 在Mac上安装字体库文件
这一步主要是为了获取该字体在系统中存放的英文名字。不过,第四步也可以达到同样的效果。具体操作是:获取到.ttf文件后,双击该文件,然后点击“安装字体”。安装成功后,点击屏幕右上角的搜索图标,输入“字体册”并打开,找到字体对应的英文名字,将其记录下来备用。
3. 找到项目中Info.plist文件并进行相应设置
首先,找到工程资源文件夹下面的 fonts 文件夹,路径一般为 Resources/fonts(本文示例所用引擎为2.2.2版本,通常字体文件会存放在此处,当然也可以放在其他文件夹,但要注意路径问题),然后将字体文件拷贝进去。
接着,找到 Info.plist 文件并打开进行修改。在2.2.1之前的版本中,Info.plist 文件可以直接在Xcode中搜索到;2.2.2版本的该文件位于项目中的 proj.ios 文件夹中。
需要注意的是,Fonts provided by application 是需要手动添加的项,原本 Info.plist 中并没有此项。添加时,要观察添加的 item 0 以及 item 1 等项。如果之前将字体库文件放在了 fonts 文件夹中,填写时一定要加上上级目录 fonts。例如,若按照 item 0 的写法可能会导致资源加载失败,若选择将字体库文件夹加到了别的路径下,一定要确保字体库文件的路径已经被加到了 Copy Bundle Resources 中。
4. (可选步骤)在控制台打印字体库中所有字体名字,找到所添加字体库的英文名
完成上述操作后,字体库文件已经成功添加到项目中并可以使用。但在使用时需要注意,字体的名字并非是文件对应的名字,而是在第二步中获取的英文名。我们可以通过以下测试代码来查看程序中字体的真正名字。
打开 AppController.mm 文件(由于测试代码为OC语言,所以需要在混编文件中测试),在入口函数 didFinishLaunchingWithOptions 中加入如下代码:
NSArray *familyNames = [UIFont familyNames];
for (NSString *familyName in familyNames) {
NSLog(@"family name is %@", familyName);
NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];
for (NSString *fontName in fontNames) {
NSLog(@"font name is %@", fontName);
}
}
这段代码会打印出所有的字体名字,然后我们在控制台进行搜索,查看是否有我们所添加的字体名。
5. 在代码中对Label控件进行使用
在2.x版本的引擎中,项目中支持字体的控件有两种:CCLabelTTF 以及CocoStudio的 Label 控件。使用方法较为简单:
CCLabelTTF的字体在create函数中即可设置,示例代码如下:CCLabelTTF* label = CCLabelTTF::create("标签名", "SentyMaruko-02-SP", 32);Label控件需要使用setFontName()方法,示例代码如下:Label *label = Label::create(); label->setFontName("SentyMaruko-02-SP");
综上所述,按照以上步骤操作,就可以在Cocos2d-x项目中成功引入并使用ttf字体库文件。