2012-07-27 30 views
0

我正在嘗試使用自定義字體制作菜單,但它似乎不起作用。 下面是代碼:Cocos2d上的自定義字體的例外

- (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

哪裏可以得到這個「sizeWithZFont」方法? – Selkie 2012-07-27 01:51:32

+0

@Selkie我沒有這個方法,我想這是cocos2d方法。 – Dvole 2012-07-27 01:55:47

+0

我不認爲這是字體的問題。也許你可以設置一些斷點,看看這個異常來自哪裏。 – Selkie 2012-07-27 02:24:32

回答

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看起來是正確的,而且這段代碼已經適用於我。也就是說,我建議設置斷點並試圖找出錯誤來自哪裏。

0

無效的參數異常意味着您嘗試使用無法識別的方法。問題是你的sizeWithZFont方法。我試圖在cocos2d文檔中進行搜索,這不是那裏的一種方法。