1.普通文本:
LabelTTF* label = LabelTTF::create("Hello World","Felt",24);
label->setString("Hello");//改变文本内容
label->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
this->addChild(label);
2.使用bmfont工具生成.fnt文件和png,这里我直接给出我自己生成的文件,自己弄有点丑。
点击这里
LabelBMFont* labelfont = LabelBMFont::create("HELLO", "1.fnt");
labelfont->setPosition(ccp(300,300));
this->addChild(labelfont);
只要合成的png字符有LabelBMFont里的文本,就可以生成文本,没有的则不显示。
素材:
效果图:
3.文本变成精灵
LabelBMFont* labelfont1 = LabelBMFont::create("HELLO", "1.fnt");
Sprite* sprite = (Sprite*)labelfont1;
sprite->setPosition(ccp(300,300));
sprite->runAction(JumpBy::create(2.f,ccp(0,0),40,5));//后续介绍
this->addChild(sprite);
4.文本与菜单
LabelBMFont* labelfont = LabelBMFont::create("HELLO", "1.fnt");
MenuItemLabel* goback = MenuItemLabel::create(labelfont,this,
menu_selector(HelloWorld::menuCloseCallback));
Menu* pmenu = Menu::create(goback,NULL);
pmenu->setPosition(ccp(200, 200));
this->addChild(pmenu);
这里唯一注意的是不要给菜单组件MenuItemLabel设置坐标,否则原点会跑到中央,给菜单Menu设置坐标才是原点在左下角,不设置默认中央
5.CCLabelAtlas
适合于显示数字信息,例如计分板,排行榜之类。
要使用这个类,必须要有一个数字图片(格式:png),并且知道每个字符的宽度和高度,例如:
//CCLabelAtlas通过png文件作为资源创建文本,参数:显示内容,图片、单个数字宽度、
//高度、图片中第一个字符的ASCII码,如字符为".",可以传入46或者'.'都可以。
CCLabelAtlas* labelatlas = CCLabelAtlas::create("2013", "a.png", 12, 32, 46);
labelatlas->setPosition(ccp(300, 100));
addChild(labelatlas);
labelatlas->setScale(2.0f);
一定要写正确每个字符的宽高,否则出问题哦。
CCLabelAtlas类还可以使用plist文件定义:
CCLabelAtlas* labelatlas = CCLabelAtlas::create("2013 baibai", "font.plist");
labelatlas->setPosition(ccp(300, 100));
addChild(labelatlas);
labelatlas->setScale(2.0f);
6.输入框
TextFieldTTF* textfield = TextFieldTTF::textFieldWithPlaceHolder(
"input","Felt",36);
textfield->setPosition(ccp(300, 400));
this->addChild(textfield);
这里没有对TextFieldTTF的一些输入方法写出来,可以去网上找找