CocosStudio的节点如何使用自定义shader
生活随笔
收集整理的這篇文章主要介紹了
CocosStudio的节点如何使用自定义shader
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
CocosStudio的節(jié)點(diǎn)如何使用自定義shader
問題:
我想對(duì)CocosStudio 的 某個(gè)UI 里的 某個(gè)圖片(如下圖所示的Image類型)使用自定義shader。
但是,我把 對(duì)傳統(tǒng)的cc.Sprite應(yīng)用自定義shader的方式 應(yīng)用于它時(shí),并不生效!因此我展開探索。
結(jié)論:
其實(shí)CocosStudio里面的Image類型就是cocos的ImageView類,ImageView的draw方法還是來自于祖先類Node的draw方法,因此對(duì)ImageView處理肯定無法正常應(yīng)用自定義shader。[具體不再贅述,讀者可自行看Node.cpp和Sprite.cpp的源碼,它倆的draw方法不同]
看ImageView類, getVirtualRenderer()可以獲得 Scale9Sprite類型的 _imageRenderer
再看 Scale9Sprite類,getSprite()可以獲得 Sprite類型的 _scale9Image (這不就是要找的傳統(tǒng)的cc.Sprite嘛!)
所以我們只需要對(duì) ImageView類型的 image_node實(shí)例,應(yīng)用自定義shader到 image_node:getVirtualRenderer():getSprite() 即可!
環(huán)境:
Cocos2d-x Lua架構(gòu)
代碼:
shader_util.lua
test.lua
--下文的image_node就是 CocosStudio解析出來的Image類型的UI節(jié)點(diǎn) shader_util.use_shader(image_node:getVirtualRenderer():getSprite(), "test/aaa.vsh", "test/aaa.fsh")總結(jié)
以上是生活随笔為你收集整理的CocosStudio的节点如何使用自定义shader的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业微信如何取消自动登录(企业信息查询)
- 下一篇: 论游戏项目中的左与右