我正在尝试使用自定义字体制作菜单,但它似乎不起作用。 这是代码:
- (id) init
{
if (self = [super init])
{
CGSize size = [[CCDirector sharedDirector] winSize];
[CCMenuItemFont setFontName:@"PC Senior Regular"];
[CCMenuItemFont setFontSize:18];
CCMenuItemFont *menu1 = [CCMenuItemFont itemFromString:@"Music ON" target:self selector:@selector(musicToggle)];
CCMenuItemFont *menu2 = [CCMenuItemFont itemFromString:@"Back" target:self selector:@selector(back)];
CCMenu *menu = [CCMenu menuWithItems:menu1, menu2, nil];
[menu setPosition:ccp(size.width / 2 , size.height / 2)];
[menu alignItemsVertically];
[self addChild:menu];
}
以下是我的info.plist中的代码:
<key>UIAppFonts</key>
<array>
<string>PC Senior Regular.ttf</string>
<string>senior.ttf</string>
</array>
例外:
2012-07-27 05:42:35.369 Busterball[16089:10a03] In options
2012-07-27 05:42:35.371 Busterball[16089:10a03] -[__NSCFConstantString sizeWithZFont:]: unrecognized selector sent to instance 0xb0670
2012-07-27 05:42:35.372 Busterball[16089:10a03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString sizeWithZFont:]: unrecognized selector sent to instance 0xb0670'
我尝试过使用senior.ttf,只是高级等。 这两种字体都被添加为项目的目标。我仔细检查了正确的类型情况。 出了什么问题?
答案 0 :(得分:0)
你尝试过这样的事吗?
CCLabelTTF *label = [CCLabelTTF labelWithString:"Some Text" fontName:@"MyFont.TTF" fontSize:24.0];
CCMenuItem *item = [CCMenuItemLabel itemWithLabel:label target:self selector:@selector(myFunction)];
CCMenu *menu = [CCMenu menuWithItems:item];
[self addChild:menu];
您的info.plist看起来正确,此代码对我有用。也就是说,我建议设置断点并尝试找出错误的来源。
答案 1 :(得分:0)
无效的参数异常意味着您尝试使用无法识别的方法。问题是你的sizeWithZFont方法。我试图在cocos2d文档中搜索,这不是一个方法。