Cocos2d-x setVisible不起作用

时间:2015-09-14 18:24:36

标签: c++ cocos2d-x cocos2d-x-3.0

我正在制作信息窗口。我想控制每一封信 我运行了Sprite #setVisible来控制每个字母,但它不起作用 标签#setVisible正常工作。

这是我的代码。

void MessageWindowLayer::setText(std::string& text) {
this->message = text;

Label* msgLabel = Label::createWithTTF(message, "fonts/JKG-L_3.ttf", 24);
msgLabel->setPosition(cocos2d::ccp(0, back->getContentSize().height));
msgLabel->setAnchorPoint(ccp(0, 1));

this->runAction(CallFunc::create([msgLabel]() {
    int num = msgLabel->getStringLength() + msgLabel->getStringNumLines() - 1;
    for (int i = 0; i < num; i++) {
        Sprite* letter = msgLabel->getLetter(i);
        if (nullptr != letter) {
            letter->setVisible(false);
            log("isVisible:%d", letter->isVisible()); // isVisible returns "0" but letters still show
            //letter->runAction(
            //  Sequence::create(
            //  DelayTime::create(0.2f*i),
            //  //JumpBy::create(0.5f, Point::ZERO, 60, 1),
            //  Show::create(),
            //  NULL
            //  ));
        }
    }
}));

parentLayer->addChild(msgLabel);
}
谢谢。

编辑: 我改变了cocos版本&#34; 3.8 final&#34;到&#34; 3.7.1&#34;它变得有效了。 所以我在github上打开了问题。

1 个答案:

答案 0 :(得分:1)

ttfLabel不支持'getLetter()'如果你想要控制每个字母,你需要使用bmfontLabel