12. cocos2dx 如何取一个sprite的颜色值

    大家都知道颜色的Data数据是存放在CCimage下的,而CCimage在创建完CCsprite之后是不保存的。
当然我们可以改源码将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数据,来进行颜色操作了。

    比如判断某个点的颜色值是否透明,可以应用在像素碰撞上,也可以应用在不规则的相互嵌套按钮的点击判断上。

猜你喜欢

转载自caiwb1990.iteye.com/blog/2096320