cocos2dx 字体外发光_cocos2dx 保存scrollview里的全部内容到一张图里

map levelMaps;

set saved;//记录存好的文件

for(int i=0; i<189; i++){

//检查188个关卡,有哪些已经配置好了

string levelName = "guanka_";

levelName.append(Value(i).asString());

levelMaps.insert(map::value_type(i, levelName));

levelName.append(".tpl");

if(FileUtils::getInstance()->isFileExist(levelName)){

//文件存在就记录

saved.insert(i);

}

}

auto ws = Director::getInstance()->getWinSize();

auto lstw = ui::ListView::create();

lstw->setName("showLevel");

lstw->setBackGroundColorType(ui::ScrollView::BackGroundColorType::SOLID);

lstw->setAnchorPoint(Vec2::ANCHOR_BOTTOM_LEFT);

lstw->setSize(Size(110, ws.height));

lstw->setDirection(ui::ScrollView::Direction::VERTICAL);

lstw->setBounceEnabled(true);

lstw->setPosition(Vec2(0, 0));

pNode->addChild(lstw);

for(std::pair mapL : levelMaps){

auto lay = Layout::create();

lay->setBackGroundColorType(ScrollView::BackGroundColorType::SOLID);

lay->setBackGroundColor(Color3B::GRAY);

lay->setTouchEnabled(true);

lay->setUserData((void*)mapL.first);

lay->setContentSize(Size(110,42));//117 114

Label *label = Label::createWithSystemFont(mapL.second, "", 18);

label->setAnchorPoint(Vec2::ANCHOR_MIDDLE);

if(saved.find(mapL.first) != saved.end()){

//如果存在改变文字颜色

label->setColor(Color3B::GREEN);

}else {

label->setColor(Color3B::BLACK);

}

label->setDimensions(110,30);

label->setPosition(lay->getContentSize()/2);

lay->addClickEventListener([=](Ref *sender){

auto select = dynamic_cast(lstw->getUserObject());

if(select == lay){

return ;

}

if(select){

select->setBackGroundColor(Color3B::GRAY);

}

//            m_guanka.canMove = pro.m_type;

lay->setBackGroundColor(Color3B::RED);

lstw->setUserObject(lay);

//设置关卡级数

m_level = mapL.first;

Button * levelText = dynamic_cast(pNode->getChildByName("m_level"));

if(levelText){

levelText->setTitleText(Value(m_level).asString());

}

pNode->removeChildByName("showLevel");

//重新读取配置信息

readGameDataTpl();

});

//设置默认

if(m_level == mapL.first){

lay->setBackGroundColor(Color3B::RED);

lstw->setUserObject(lay);

}

lay->addChild(label);

lstw->addChild(lay);

}

lstw->runAction(Sequence::create(DelayTime::create(0.1), CallFunc::create([=](){

//        lstw->scrollToPercentVertical(m_level*1.0/levelMaps.size()*100.0, 0.1, true);

log("------------------------x=%f, y=%f,heigh=%f", lstw->getInnerContainer()->getPosition().x, lstw->getInnerContainer()->getPosition().y, lstw->getInnerContainer()->getSize().height);

int sn = lstw->getInnerContainerSize().height/960;

auto off = lstw->getInnerContainerSize().height-960.0*sn;

//         lstw->getInnerContainer()->setPosition(Vec2(0,0));

//将listview里的全部内容保存到一张图片里

auto render = RenderTexture::create(640,  lstw->getInnerContainerSize().height);

render->begin();

auto pos = lstw->getInnerContainer()->getPosition();

for(int i=0; i

this->visit();

//            pos+= Vec2(0, 960);

pos.y += 960;

lstw->getInnerContainer()->setPosition(pos);

log("pos [%d] y=%f", i, pos.y);

}

log("-----1pos [%d] y=%f", sn-2, pos.y);

this->visit();

pos.y += off;

lstw->getInnerContainer()->setPosition(pos);

this->visit();

log("------2pos [%d] y=%f", sn-1, pos.y);

render->end();

render->saveToFile("sssss.png");

}), nullptr));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值