它无法编译源代码和写入:
架构i386的未定义符号:
"_ CTFontManagerRegisterFontsForURL",引用自: - CCLabelTTF中的[CCLabelTTF getFontName:] ld:未找到架构i386的符号clang:错误:链接器命令失败,退出代码为1(使用-v为看调用)
但是当我用"return nil"替换CCLabelTTF中以下函数中的所有代码时:
- (NSString*) getFontName:(NSString*)fontName
{
// Custom .ttf file ?
if ([[fontName lowercaseString] hasSuffix:@".ttf"])
{
// This is a file, register font with font manager
NSString* fontFile = [[CCFileUtils sharedFileUtils] fullPathForFilename:fontName];
NSURL* fontURL = [NSURL fileURLWithPath:fontFile];
CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, NULL);
return [[fontFile lastPathComponent] stringByDeletingPathExtension];
}
return fontName;
}
Run Code Online (Sandbox Code Playgroud)
然后我可以编译我的代码,但我不能使用标签.
那么如何在不创建新项目的情况下解决这个问题并将所有资源复制到其中呢?
EDITED
以前的版本是2.x,现在我有最后一个rc2版本.
我删除了旧库的所有文件,将文件从新库复制到项目文件夹中,并通过xcode将它们添加到项目中.xcode可以用新的库文件创建项目,所以我从这个新项目中获取它们.然后我做了一些更改以删除警告.
我需要在我的Cocos2D项目中使用自定义字体.我尝试了一些技巧,但Cocos2D不断报道:
无法加载字体XXX.ttf
为什么我不能使用Cocos2D使用自定义字体?
这是一个问题+答案的帖子.这是一个让我整个早上都撞在墙上的问题.在阅读了众多网站的众多解决方案之后,我发现所有可用解决方案的合并都是解决这个问题的必要条件.
对某些人来说进一步困扰的是,你有时可以让你的应用程序在模拟器中完美地工作,但它不适用于你的iOS设备!此外,我还阅读了一些用户遇到相反问题的情况,其中设备将正常工作,而不是模拟器.我没有遇到后一个问题,但我相信遵循这些说明将有助于解决这个问题.
如果您遇到此问题,请自行解决,我错过了一步,请发表评论.我会更新我的帖子以包含任何其他详细信息.
所以在使用Cocos2d的Objective-C中,我使用带有格式的NSMutableString将变量(得分)放入字符串中.我拿这个字符串并使用CCLabel将它放在屏幕上.
使用Cocos2D-x,我很难找到获得此结果的方法.一个简单的例子就是很棒.谢谢!
我使用的是cocos2d v0.99.5,iOS部署目标是5.0
当我在iOS-7.0/5.0模拟器中使用Xcode 5.0运行我的应用程序时它工作正常.我在iOS-6.1/6.0模拟器中使用Xcode 5.0运行不起作用.我用断点检查,它崩溃在下面的代码:
CCLabelTTF *mainGameTitle = [[CCLabelTTF alloc] initWithString:@"REGULAR PACK" dimensions:CGSizeMake(40, 50) alignment:UITextAlignmentLeft fontName:@"Arial Rounded MT Bold" fontSize:20];
Run Code Online (Sandbox Code Playgroud)
它显示如下:

我写的时候:
CCLOG(@"font names ====> %@",[UIFont familyNames]);
Run Code Online (Sandbox Code Playgroud)
在此行中,iOS-6.0和6.1中也出现"EXC_BAD_ACCESS"错误.
我试过CCMenuItemFont,这个也显示了上面的崩溃.
它工作在7.0和5.0模拟器/设备.这是什么问题?请帮我?
编辑:
我尝试了另一种方法,即
CCLabelTTF *mainGameTitle = [CCLabelTTF labelWithString:@"REGULAR PACK" fontName:@"Arial Rounded MT Bold" fontSize:20];
Run Code Online (Sandbox Code Playgroud)
我再次在labelWithString:fontName:fontSize方法中遇到UIFont问题.
我有一个CCLabelTTF的项目看起来很好而且很好.当我开始使用设计尺寸功能来修复出现在不同设备尺寸和视网膜显示器上的一些问题时,所有字体都开始变得模糊.
我在下面的链接中看到了答案,但它很复杂,我不明白如何实现. http://www.cocos2d-x.org/forums/6/topics/32206?r=42107
当然我可以从使用设计大小功能恢复,但我更愿意使用解决方法,如果有的话.
谢谢你提前.
我已经提到过这个链接:在Cocos2d中使用自定义字体
这个链接:http://captainjor.wordpress.com/2013/04/03/cocos2d-x-custom-ttf-font/
第一个链接有效,但我只能指定字体的系列名称(基于字体窗口顶部的名称).如果我想要Bold,或者一些疯狂的屁股造型,我无法明确指定,因为我打开了其他样式字体,如BoldItalic或Italic,它仍然返回我的姓氏.
第二个链接根本不起作用.
我在Cocos2dx中使用的代码有效:
CCLabelTTF *energyLabel = CCLabelTTF::create("ABCDEFGHIJKL", "Roboto", 60.0f);
Run Code Online (Sandbox Code Playgroud)
这个没有:
CCLabelTTF *energyLabel = CCLabelTTF::create("ABCDEFGHIJKL", "Roboto Black Italic", 60.0f);
Run Code Online (Sandbox Code Playgroud)
请注意,我已经在Info.plist文件中双重检查以导入所有必需的字体.任何人有更多的解决方案?= /我很难过.导入字体就是这样的PITA.
编辑:我在这个问题上再次跌跌撞撞,但采用了不同的方法.我想我会在这里发布一些关于如何为Android和iOS完全进行字体导入的重要指示.请注意,这最适合支持使用一行代码导入字体.

- >是的我们可以看到我已经以某种方式包含了"fonts /"子文件夹目录,即使这些字体位于参考资料中的ROOT文件夹中.这是最奇怪的部分,这应该是唯一棘手的事情.我尝试删除"fonts /"子文件夹目录引用,当我尝试使用字体在我的应用程序中显示文本/标签时,它不起作用
这是适用于iOS和Android的产品线:
CCLabelTTF* levelLabel = CCLabelTTF::create("TextDisplayed", Roboto-BlackItalic.ttf, 12);
Run Code Online (Sandbox Code Playgroud)
这行代码严重依赖于这一事实:字体的PostScript名称需要与文件名完全相同.