Cocos2d-x 中的文字换行
Text Wrapping in Cocos2d-x
我正在尝试让我的文本标签在文本长于它们所在的框时自动调整大小。我还希望它支持多行功能。我在网上做了一些搜索,发现它曾经是这样工作的:
CCLabelTTF::labelWithString(“This is a sentence longer than a line width.2d-x”, CGSizeMake(**0, 0**), UITextAlignmentCenter, “Thonburi”, 20);
但在 cocos 中似乎不再可用,所以我不确定该怎么做。现在我的标签设置如下:
myQuestion = Label::createWithTTF("Testing to see if text wrap will work" ,c_strFontNameBase, 50);
myQuestion->setPosition(boxLabel->getContentSize().width/2, boxLabel->getContentSize().height/2);
boxLabel->addChild(myQuestion, 50);
有没有什么方法可以让我使用与上面示例类似的方法来使我的工作正常进行?这似乎不是一件很难做的事情,但我发现网上缺乏相关文档...
我相信,您只能使标签的一个维度自动调整大小,即宽度或高度都可以自动调整大小。默认情况下,当您按如下方式创建标签时,标签的宽度设置为自动调整大小并固定高度:
auto label = Label::createWithTTF("Hello World gsdhsgdh gshdghsg yutywe gdgshdgy bnbjh hshhashgy hjnbdnsdhh ghhsgdhg ghghghsd ghhghsd ghghghgsd jkjkhsdjkj ououisdusydsi kkjkxncmxcjh kcxhjxhcjx jkuiushjxchxjch hjhjchxuyuychjc ", "fonts/Marker Felt.ttf", 24);
// position the label on the center of the screen
label->setPosition(Vec2(origin.x + visibleSize.width/2,
origin.y + visibleSize.height - label->getContentSize().height));
// add the label as a child to this layer
this->addChild(label, 1);
但是如果你想要多行支持,即固定宽度和可调整大小的高度,你只需要将标签的尺寸设置为固定宽度和零高度:
label->setDimensions(300, 0);
希望对你有所帮助。
我正在尝试让我的文本标签在文本长于它们所在的框时自动调整大小。我还希望它支持多行功能。我在网上做了一些搜索,发现它曾经是这样工作的:
CCLabelTTF::labelWithString(“This is a sentence longer than a line width.2d-x”, CGSizeMake(**0, 0**), UITextAlignmentCenter, “Thonburi”, 20);
但在 cocos 中似乎不再可用,所以我不确定该怎么做。现在我的标签设置如下:
myQuestion = Label::createWithTTF("Testing to see if text wrap will work" ,c_strFontNameBase, 50);
myQuestion->setPosition(boxLabel->getContentSize().width/2, boxLabel->getContentSize().height/2);
boxLabel->addChild(myQuestion, 50);
有没有什么方法可以让我使用与上面示例类似的方法来使我的工作正常进行?这似乎不是一件很难做的事情,但我发现网上缺乏相关文档...
我相信,您只能使标签的一个维度自动调整大小,即宽度或高度都可以自动调整大小。默认情况下,当您按如下方式创建标签时,标签的宽度设置为自动调整大小并固定高度:
auto label = Label::createWithTTF("Hello World gsdhsgdh gshdghsg yutywe gdgshdgy bnbjh hshhashgy hjnbdnsdhh ghhsgdhg ghghghsd ghhghsd ghghghgsd jkjkhsdjkj ououisdusydsi kkjkxncmxcjh kcxhjxhcjx jkuiushjxchxjch hjhjchxuyuychjc ", "fonts/Marker Felt.ttf", 24);
// position the label on the center of the screen
label->setPosition(Vec2(origin.x + visibleSize.width/2,
origin.y + visibleSize.height - label->getContentSize().height));
// add the label as a child to this layer
this->addChild(label, 1);
但是如果你想要多行支持,即固定宽度和可调整大小的高度,你只需要将标签的尺寸设置为固定宽度和零高度:
label->setDimensions(300, 0);
希望对你有所帮助。