继前篇文章讲完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);
效果如下