来自CCSpriteBatchNode的CCMenuItemLabelAndSprite和CCSprite

时间:2012-03-27 11:39:21

标签: objective-c cocos2d-iphone menuitem

我正在尝试使用Image&创建一些菜单项标签,使用barry's class

    CGRect menuItemRect = CGRectFromString([[myAtlas objectForKey:@"menuItem.png"] objectForKey:@"textureRect"]);
    CCSprite *normalMenuItemSprite = [CCSprite spriteWithBatchNode:batchNode rect:menuItemRect];
    CCSprite *selectedMenuItemSprite = [CCSprite spriteWithBatchNode:batchNode rect:menuItemRect];

    CCMenuItemLabelAndSprite *aMenuItem = [CCMenuItemLabelAndSprite itemWithLabel:itemLabel normalSprite:normalMenuItemSprite selectedSprite:selectedMenuItemSprite];

    CCMenu *myMenu = [CCMenu menuWithItems:aMenuItem, nil];
    myMenu.anchorPoint = ccpzero;
    myMenu.position = ccp(330,280);
    [myMenu alignItemsHorizontallyWithPadding:100];
    [self addChild:myMenu];

如果CCSprite由CCSpriteBatchNode呈现,则CCSprite#draw应该不应该被调用是我的日志中显示的错误

我知道我不能在CCSprites旁边添加任何其他对象到CCSpriteBatchNode但是我该如何处理这种情况呢?

1 个答案:

答案 0 :(得分:1)

尝试使用spriteWithSpriteFrameName

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"myAtlas.plist"];

CCSprite *normalMenuItemSprite = [CCSprite spriteWithSpriteFrameName:@"menuItem.png"];