昨天写过一个关于使用Image实现像素检测的文章,实现方式是利用Image,但是因为实际使用过程中,如果这样的Image特别多,会消耗比较大的内存空间,所以需要把每个Image的数据保存起来,比较繁琐。通过网上查找,有另外一种利用RenderTexture的方法,在画板上面绘制,之后获取绘制的Image数据,核心内容都一样,都是获取Image的数据,转化为RGBA值。这里将另外一种方式分享出来,以供自由选择。
参考文献:http://blog.sina.com.cn/s/blog_bcbac6b90102web3.html
1、首先我们需要在C++导出两个接口,一个在CCDirector.cpp实现,文件位于frameworks\cocos2d-x\cocos\base
void Director::flushScene()
{
_renderer->render();
}
2、第二个接口,我们在Image里面实现,文件位于frameworks\cocos2d-x\cocos\platform
Color4B Image::getPixelColor( const Vec2& pos )
{
Color4B color = {0, 0, 0, 0};
if ( pos.x < 0 || pos.x >= this->getWidth() || pos.y < 0 || pos.y &