先看看结果对比,这是涂抹的一个效果
本文是基于同事培训给出的讲解。有点不太好讲,我给出关键代码 做下解释,若有不对的地方,请指正。
涂抹经历初始化的代码
if (CCNode::init()) {
brushRadius = radius;
locationsArray_ = CCArray::createWithCapacity(0);
locationsArray_->retain();
CCSprite *sprite = CCSprite::create(pszSpriteFileName);
sprite->setBlendFunc((ccBlendFunc){GL_ONE,GL_ZERO});
sprite->setAnchorPoint(ccp(0, 0));
CCRenderTexture *render = CCRenderTexture::create(sprite->getTextureRect().size.width, sprite->getTextureRect().size.height);
render->begin();
sprite->visit();
render->end();
CCAssert((dynamic_cast<CCTexture2D *>(dynamic_cast<CCSprite *>(render->getSprite())->getTexture())->getPixelFormat() == 0), "only RGBA8888 can be saved as image");
paintspriteSize = dynamic_cast<CCSprite *>(render->getSprite())->getTexture()->getContentSizeInPixels();
int tx = paintspriteSize.width;
int ty = paintspriteSize.height;
int bytesPerRow = 4 * tx;
myDataLength = bytesPerRow * ty;
//