0

カスタムフォントでメニューを作成しようとしていますが、うまくいかないようです。コードは次のとおりです。

- (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、ちょうどseniorなどを使用してみました。両方のフォントがプロジェクトのターゲットとして追加されています。正しい活字ケースを再確認しました。何が問題になっていますか?

4

2 に答える 2

0

無効な引数の例外は、認識されないメソッドを使用しようとしていることを意味します。問題はsizeWithZFontメソッドです。私はcocos2dのドキュメントを検索しようとしましたが、それはそこにある方法ではありません。

于 2012-07-28T02:30:56.807 に答える
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は正しく見えます、そしてこのコードは私のために働きました。とはいえ、ブレークポイントを設定して、エラーの原因を突き止めることをお勧めします。

于 2012-07-28T00:30:55.020 に答える