由于 游戏界面,用系统自带的字体实在是太丑陋,美工为了插入字体 把每个东西都做成 png 压力确实很大
然后查了一下 现在 iOS 4 已经支持 使用TTF 字体
第一步:将TTF字体拉入工程
第二步:在info.plist 中 添加一个新的键Fonts provided by application NSArray 然后item 里面的string 值为XXX.TTF
第三步:关键
一个字体文件包括以下几个内容:文件名 字体总名称 字体具体名称,我们只有 文件名 不知道字体名称是什么 更不知道具体的。
那么双击那个 ttf 文件 会打开字体文件安装器 title 就是 字体的总名称
但是字体的总名称 是没法使用的,因为 加粗 加斜 都是字体中的具体名称,那么我们就需要写代码 获得 字体的具体名称
注意这个代码 必须运行在你在plist中添加ttf文件的工程中,不能新建一个hello world 跑一下
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
[fontNames release];
}
[familyNames release];
然后在 gdb 中找 family name 是刚才那个title 下的 font name
之后 [UIFont fontWithName:<#(NSString *)#> size:<#(CGFloat)#>] 那个字符串直接填 刚才获得的字符串 即可
那么 cocos2d呢?
其实 在LabelTTF的 fontName: 那里也是填入同样的东西。。。。
毕竟texture2d 的 fontname: size: 这个函数调用的就是 [UIFont fontWithName:<#(NSString *)#> size:<#(CGFloat)#>]
来自:http://hi.baidu.com/306996305/blog/item/d7c310c8c77ba80c7e3e6f46.html