GUI 文档阅读

来源:互联网 发布:江阴广电网络 编辑:程序博客网 时间:2024/06/05 18:57

Menu and MenuItems


CCMenu  是CCmenuItems的集合,可以在菜单中使用buttons 或 labels 菜单项,因为CCMenu  包含全部的菜单项,它控制菜单项的位置和对齐方式,菜单项被默认放在CCMenu  中心。

创建带图片的菜单项
CCMenuItem *pCloseItem = CCMenuItemImage::create(                                        "CloseNormal.png",                                        "CloseSelected.png",                                        this,                                        menu_selector(HelloWorld::menuCloseCallback) );

创建带文本的菜单项
CCMenuItem *pCloseItem = CCMenuItemFont::create(                                        "Close",                                        this,                                        menu_selector(HelloWorld::menuCloseCallback) );pCloseItem->setFontSize(35);pCloseItem->setFontName("Helvetica");

菜单项加入到CCMenu  
CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);

加入到图层中
 this->addChild(pMenu, 1);

添加菜单项响应事件
void GameScene::menuCloseCallback(CCObject* pSender){    CCDirector::sharedDirector()->end();    exit(0);}

Text Labels


1)TTF labels( CCLabelTTF )

使用TTF字体名创建标签,也可以使用自定义的TTF文件,需要把.ttf文件加入工程里。
如果加载TTF字体失败,将会使用UIFont类。
opengl 纹理将基于字体大小和字体名自动计算其大小。
CCLabelTTF* ttf1 = CCLabelTTF::create("Hello World", "Helvetica", 12,                                       CCSizeMake(245, 32), kCCTextAlignmentCenter);

可以使用这个创建纹理
注意:用这个方式,你必须传递你使用的opengl纹理尺寸,如果纹理尺寸不够大,只能绘制部分标签。
CCLabelTTF* CCLabelTTF::create(const char *string, const char *fontName, float fontSize,                               const CCSize &dimensions, CCTextAlignment hAlignment,                                CCVerticalTextAlignment vAlignment)

更改对齐方式
//left alignmentlabel->setAnchorPoint(ccp(0,0.5f)); // right alignmentlabel->setAnchorPoint(ccp(1,0.5f));// center aligment (default)label->setAnchorPoint(ccp(0.5f,0.5f));

当设置文本内容时,注意:每次调用这个函数,都会创建新的opengl 纹理,并渲染,性能不好, 所以可以使用CCLabelAtlas或 CCBitmapFontAtlas代替
label->setString("Hello World 2");

改变字体颜色
label.setColor(ccc3(0,0,0)); // orlabel.setColor(ccc4(0,0,0,0)); // setOpacity




2)texture atlas labels( CCLabelAtlas, CCLabelBMFont )










0 0
原创粉丝点击