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

php中文网
发布: 2016-06-07 15:32:28
原创
1909人浏览过

有关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);


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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号