通过使用cocos2dx中的grabber来实现抓屏

_nodeGrid = NodeGrid::create();
Node* tmParent = _lyTilemap->getParent();
_lyTilemap->retain();
_lyTilemap->removeFromParent();
_nodeGrid->addChild(_lyTilemap);
tmParent->addChild(_nodeGrid);
_lyTilemap->release();
auto wave = Waves::create(10.0, Size(1,1), 4, 20, true, true);
_nodeGrid->runAction(RepeatForever::create(wave));

代码如上,Waves的实现使用的就是grabber抓屏,但是显示出来的颜色有异常,如:1
、粒子后面有黑光晕;2、整体透明;
后面通过在grabber重新绘制前调用glBlendfunc(),解决了这个问题

在真机上测试过,帧数没掉多少,基本稳定在60左右。