我們注意到這個遊戲其中常常使用一些button。美術會給兩張圖。一張略微暗點,表示按下的狀態。
可是這種圖一多起來。就比較占用資源。sprite更改顏色無法表現出這種效果。想起來shader能夠。
cocos2d 中有乙個變灰的樣例,這裡就列出shader**:
#ifdef gl_es
precision mediump float;
#endif
varying vec4 v_fragmentcolor;
varying vec2 v_texcoord;
void main(void)
那幾個係數相加會等於1,不同的調整會有不同的效果。
效果圖:
第一張就是變灰的效果圖,可是離第3張的效果還有距離啊。
搞過圖形學的應該會比較easy知道。我也是搜尋了才知道,我們知道白色是1或者255,黑色是0. 當乙個顏色越接近0表示越接近黑色。也就是說,僅僅要把每乙個畫素的顏色乘以乙個比1小的數。就會有變暗的效果了!
#ifdef gl_es
precision mediump float;
#endif
varying vec4 v_fragmentcolor;
varying vec2 v_texcoord;
void main(void)
我這裡設定的是0.75
終於效果圖:
cocos2d 3 X Shader 變暗和變灰
我們注意到這個遊戲當中經常使用一些按鈕,美術會給兩張圖,一張稍微暗點,表示按下的狀態。但是這樣的圖一多起來,就比較占用資源。sprite更改顏色無法表現出這樣的效果。想起來shader可以。cocos2d 中有乙個變灰的例子,這裡就列出shader ifdef gl es precision med...
cocos2d實現語音 Cocos2d 聲音API
param url 聲音路徑 cc.audioengine.playmusic url loop 停止背景 param releasedata 是否釋放聲音資料,預設為false cc.audioengine.stopmusic releasedata 暫停背景 cc.audioengine.pau...
cocos2d 3 x 學習雜記
學習cocos中遇到的一些零散問題,紀錄下來。animation的載入問題actorspritecache addspriteframeswithfile actor.plist load frames 1 animation ani animcation create for int i 0 i ...