Home > Database > Mysql Tutorial > 【转】cocos2dx橡皮擦效果,CCRenderTexture的使用

【转】cocos2dx橡皮擦效果,CCRenderTexture的使用

WBOY
Release: 2016-06-07 15:32:28
Original
1782 people have browsed it

有关openGl方面,请参考http://cn.cocos2d-x.org/tutorial/show?id=1482 CCRenderTexture:http://www.cnblogs.com/andyque/archive/2011/07/01/2095479.html 根据这两篇博文,试了一下,发现一些注意点,记录下来: 1.经我尝试,感觉最好用的是DrawNode,可

有关openGl方面,请参考http://cn.cocos2d-x.org/tutorial/show?id=1482

CCRenderTexture:http://www.cnblogs.com/andyque/archive/2011/07/01/2095479.html


根据这两篇博文,试了一下,发现一些注意点,记录下来:

1.经我尝试,感觉最好用的是DrawNode,可以设置zOrder为负数,擦除时可以不让用户看见,也不会有锯齿。

直接写一个触摸的函数,一看便知:

bool HelloWorld::TouchBegan(Touch* touch, Event* event)
{

obj_Erase->clear();
auto location = touch->getLocation();


float fRadius = 30.0f;/// const int nCount = 100;/// const float coef = 2.0f * (float)M_PI / nCount; /// static CCPoint circle[nCount];    /// for (unsigned int i = 0; i float rads = i*coef; /// circle[i].x = fRadius * cosf(rads); /// circle[i].y = fRadius * sinf(rads); /// }
obj_Erase->drawPolygon(circle, nCount, ccc4f(0, 0, 0, 0), 0, ccc4f(0, 0, 0, 0));//绘制这个多边形!
BlendFunc blendFunc = { GL_ONE, GL_ZERO };
obj_Erase->setPosition(location.x - 320, location.y - 180);//调整位置,适应RenderTexture
obj_Erase->setBlendFunc(blendFunc);
myRt->begin();
obj_Erase->visit();
myRt->end();

}

obj_Erase就是一个DrawNode,全局变量。

obj_Erase = DrawNode::create();
this->addChild(obj_Erase,-1);

刚开始Clear一下DrawNode,这样不会使GL verts一路猛增。最后卡的一发不卡收拾。

画圆的方法是抄来的,多边形代替圆,点个赞!


关于DrawNode的zOrder最好设置负数,或者不会挡住其他精灵的位置。不然会看见如上的黑圈。

【转】cocos2dx橡皮擦效果,CCRenderTexture的使用


2.CCRenderTexture

CCRenderTexture的Begin,我们绘制的东西,visit之后的坐标会根据CCRenderTexture的坐标系重新计算,CCRenderTexture左下角为原点。


所以就有了位置的调整:

obj_Erase->setPosition(location.x - 320, location.y - 180);


网络发达,学会利用,培训坑钱。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template