原理:
1. 先在RenderTexture上渲染文字
2. 通过RenderTexture:newImage来获取到Image并依此得到对应的Texture
3 通过Texture构造Sprite,将生成的Sprite作为ClipPingNode的模板(stencil)
4. ClipPingNode的底图可以随意放置,这样我们就可以还不错的文字效果啦:)
-- 添加特效文本-- example: addEffectText(self,300,400,"大家好",30,"1.png"); function addEffectText(parent,x,y,str,FontSize,bg) local target = cc.RenderTexture:create(640,50); target:retain(); target:setposition(100,100); local text = cc.Label:createWithTTF(str,"Fonts/simhei.ttf",FontSize); text:setcolor(cc.c3b(255,0)); text:setposition(320,25); target:begin(); text:visit(); target:endTolua(); local function copyImage() local pImage = target:newImage(); local tex = cc.Director:getInstance():getTextureCache():addImage(pImage,str); local sprite = cc.Sprite:createWithTexture(tex); local clipPingNode = cc.ClipPingNode:create(); local image = cc.Sprite:create(bg); clipPingNode:setStencil(sprite); clipPingNode:addChild(image); clipPingNode:setAlphaThreshold(0.1); clipPingNode:setposition(x,y); parent:addChild(clipPingNode); target:release(); end performWithDelay(parent,copyImage,0.01);end
效果:
总结以上是内存溢出为你收集整理的cocos2dx 制作特效文本全部内容,希望文章能够帮你解决cocos2dx 制作特效文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)