大家都知道颜色的Data数据是存放在CCimage下的,而CCimage在创建完CCsprite之后是不保存的。
当然我们可以改源码将CCimage直接获得出来,也可以通过以下方法通过CCRenderTexture来获得CCsprite的CCimage。
获得到CCimage以后,我们就可以取出颜色的data数据,来进行颜色操作了。
比如判断某个点的颜色值是否透明,可以应用在像素碰撞上,也可以应用在不规则的相互嵌套按钮的点击判断上。
当然我们可以改源码将CCimage直接获得出来,也可以通过以下方法通过CCRenderTexture来获得CCsprite的CCimage。
CCSprite* pNewSpr = CCSprite::createWithSpriteFrame(pSpr->displayFrame());
pNewSpr->setAnchorPoint(CCPointZero);
CCRenderTexture* pRender = CCRenderTexture::create(pNewSpr->getContentSize().width, pNewSpr->getContentSize().height, kCCTexture2DPixelFormat_RGBA8888);
pRender->begin();
pNewSpr->visit();
pRender->end();
CCImage* image = pRender->newCCImage();
获得到CCimage以后,我们就可以取出颜色的data数据,来进行颜色操作了。
比如判断某个点的颜色值是否透明,可以应用在像素碰撞上,也可以应用在不规则的相互嵌套按钮的点击判断上。
本文介绍了一种从CCSprite中提取颜色数据的方法,利用CCRenderTexture获取CCimage,进而实现对颜色数据的操作,如判断透明度等。
2315

被折叠的 条评论
为什么被折叠?



