关于cocos2d-x几种画图方法的用法与思考

 我来答
那年秋天朢r4
2012-10-23
知道答主
回答量:3
采纳率:0%
帮助的人:2.8万
展开全部
CCRenderTexture自己的理解CCRenderTexture类似一张空白的画布,用户通过自定义笔刷(CCSprite*),在touch事件中把笔刷的移动痕迹记录起来,从而画出各种艺术效果。记录方法很简单,首先CCRenderTexture调用自己的begin()函数,开启记录功能,然后调用笔刷-visit()把自己画在这张画布上,最后CCRenderTexture调用end()结束记录,那就OK了。
这里我想CCRenderTexture是通过把笔刷的纹理叠加到自己的纹理(Texture)里,而不是不断创建新纹理,所以消耗比较低,即使画得很频繁,帧数也能保持稳定,是个很赞的类。
CCRenderTexture由于只要begin()开启记录功能后,任何之后的CCNode*对象只要调用了visit(),就能将自己画在其身上。所以,一般游戏的截屏功能,完全可以使用CCRenderTexture的来实现,具体可以看tests里例子,cocos2d-x已经提供了相关例子,看看源代码就能搞明白的。
优点用CCRenderTexture可以很简单的实现出理想的画图效果(只要搞一张很小的笔刷图,然后用CCSprite载入来,再适当调用一个CCSprite的visit()就行了),帧数消耗低,还很方便实现出游戏的截屏功能,做《你画我猜》这种项目,第一想到的应该就是它了。
缺点由于每个Android手机的硬件或者OpenGL版本不一样,导致有些手机用CCRenderTexture会出现花屏,比如HTC。就算是官方提供的tests例子也难逃一花屏,这个致命的缺点导致用它来实现的《你画我猜》不能跨手机,比较坑爹
这个Bug我想不是cocos2d-x引擎的问题,有牛人说是因为Texture在重复画导致的(只画一次没问题,所以截屏功能应该不受影响),也许是每台Android手机的OpenGL不一样吧,所以问题一直没得到解决,只能等cocos2d-x或者有其他牛人以后可以把它Fixed掉。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式