使用CCLabelBMFont的Cocos2d v3 CCButton标签

时间:2014-05-07 22:23:56

标签: button cocos2d-iphone

我正在尝试创建名为" Start"的CCButton。在cocos2d v3中使用CCLableBMFont标签作为按钮图像。但我似乎无法将标签置于v3中的CCButton中。 任何帮助/建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为你不能将CCLableBMFont应用于CCButton。查看documentation,唯一可用的选项是:

+ (id)buttonWithTitle:(NSString *)title fontName:(NSString *)fontName fontSize:(float)size

+ (id)buttonWithTitle:(NSString *)title spriteFrame:(CCSpriteFrame *)spriteFrame

以及这两种情况的几种变体。因此,我认为您必须使用精灵或带有TTF字体的标签作为按钮背景。

答案 1 :(得分:0)

这是我添加到当前项目中的实用程序功能:

+(CCButton *)smallButtonWithLabel:(NSString *)button_label;

实施:

+(CCButton *)smallButtonWithLabel:(NSString *)button_label
{
        CCButton *button = [CCButton buttonWithTitle:nil spriteFrame:[CCSpriteFrame frameWithImageNamed:@"dlg-sml-btn-bg-s.png"] highlightedSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"dlg-sml-btn-bg-t.png"] disabledSpriteFrame:[CCSpriteFrame frameWithImageNamed:@"dlg-sml-btn-bg-s.png"]];
        [button setBackgroundOpacity:0.5 forState:CCControlStateDisabled];

        CCLabelBMFont *label = [CCLabelBMFont labelWithString:button_label fntFile:SS_FONT_48_24_MULTI width:button.contentSize.width alignment:CCTextAlignmentCenter];
        label.position = ccp(0.5, 0.5);
        label.positionType = CCPositionTypeNormalized;
        [button addChild:label];

        return button;
    }

您可以稍微修改一下以满足您的需求。 希望这会有所帮助。