继前篇文章讲完label之后,我们继续解读LabelTTF,他也是我们3.0之前常用的,他是系统中自带的字体,如果创建LabelTTF对象时没有给出字体名字或给出的字体系统中不存在,就使用引擎默认字体初始化对象。下面来看给出的两种创建方式
//创建一个空对象,通过与 initWithString()一起使用 static LabelTTF * create(); bool initWithString(const std::string& string, const std::string& fontName, float fontSize, const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::LEFT, TextVAlignment vAlignment = TextVAlignment::TOP); //直接创建 static LabelTTF * create(const std::string& string, const std::string& fontName, float fontSize, const Size& dimensions = Size::ZERO, TextHAlignment hAlignment = TextHAlignment::CENTER, TextVAlignment vAlignment = TextVAlignment::TOP);
下面来看使用create的样例
auto label1 = LabelTTF::create("Create with LabelTTF", "Arial", 30); label1->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); addChild(label1);
什么时候应该用LabelTTF了,如果你只是需要显示一串字符串,那么就毫无疑问用他了,这是3.0以前的,现在首推使用Label,来看个对比样例
auto label1 = LabelTTF::create("Create with LabelTTF", "Arial", 30); label1->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y)); addChild(label1); TTFConfig ttfConfig; ttfConfig.fontSize = 30; ttfConfig.fontFilePath = "Paint Boy.ttf"; auto label2 = Label::createWithTTF(ttfConfig, "Create with Label"); label2->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y - 100)); addChild(label2);
效果如下