cocos2dx 3.8.1版本中
sprite可以实现变色操作
ImageView的只能通过修改底层来变色
GLProgram *program1 = GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_GRAYSCALE); GLProgram *program2 = GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP); Sprite* sp = Sprite::create("res/score_bg.png"); // 下面两种方法 其实是一样的 sp->setGLProgram(program1); //sp->setGLProgramState(GLProgramState::getorCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP)); sp->setPosition(240,200); addChild(sp); ImageView* image = ImageView::create(); image->setPosition(ccp(240,400)); image->loadTexture("res/score_bg.png"); Scale9Sprite*sp9 = (Scale9Sprite*)image->getVirtualRenderer(); sp9->setState(Scale9Sprite::State::GRAY); //sp9->setState(Scale9Sprite::State::norMAL); 正常状态 // 下面的方法行不通 //image->setGLProgramState(GLProgramState::getorCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_GRAYSCALE)); addChild(image); auto sprite = Sprite::create("res/score_bg.png"); progress = Progresstimer::create(sprite); progress->setPercentage(0); progress->setType(Progresstimer::Type::RADIAL); //progress->setReverseDirection(true); 逆时针 image->addChild(progress);
原文地址:https://www.jb51.cc/cocos2dx/340694.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。