精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于cocos2d-x幾種畫圖方法的用法與思考

移動開發 iOS 游戲開發
Cocos2d-x中文論壇會員j1223jesus分享了cocos2d-x的幾種畫圖方法的用法和自己對其的理解。

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掉。

因為花屏問題,現階段不推薦使用(如果有牛人解決了花屏問題,請教教我,謝謝)

[ 花屏參考圖 ]

例子

CCRenderTexture大概是大家比較熟悉的,tests里也有相關例子,要知道用法直接看tests的源代碼就可以了,效果如圖:

用OpenGL-ES實現畫圖

自己的理解

OpenGL-ES是OpenGL的精簡版,由于太精簡,很多OpenGL常用的函數都被“簡”掉了,導致有很多網上一搜一大把的畫圖算法用不上。所以用OpenGL-ES畫圖,這個感覺難度非常高。

在cocos2d-x中,OpenGL-ES一般在draw()這個函數里面調用其相關函數。當然cocos2d-x也封裝了幾個常用的畫圖函數:ccDrawLine,ccDrawCircle等,當然cocos2d-x也提供了例子,在tests里可以輕松找到。

優點

暫時沒想到,因為我本身對OpenGL-ES不熟…

缺點

實現難度大可以攔截一大批人了,感覺。因為不能像CCRenderTexture那樣在touch事件中進行繪圖,所以一般會把要畫的CCPoint在touch事件的記錄下來,然后在draw()這個函數里遍歷之,以實現繪圖效果。

移動過的點一般都要保存下來,注意的是要全部保存,如果只保存當前點的話,draw()就只會畫一個點,畫出來的效果就像一個“光點”跟隨的鼠標移動,而不是繪圖。一般畫一幅畫,鼠標都會拖動出N個點,如果只是簡單的vector保存的話,vector會超大,draw中遍歷它也很耗時,導致沒一會幀數就掉光了。具體怎么保存看數據結構吧,同事以線段作為數據結構來記錄點,這樣消耗不大,幀數也能保持穩定。

另外一個缺點就是如果算法實現不好,畫出來的效果很坑爹,同事的線段法雖然能很流暢的畫線,但是鋸齒問題很嚴重,開了OpenGL的抗鋸齒也沒效果。如果對OpenGL-ES很熟而且算法也很牛的話,也許draw()是最快最好的一種畫圖法了。

最后還一個超坑爹的缺點:draw()在Google那臺三星手機上,始終畫在最頂層顯示,然后線條就會把游戲UI遮蓋住了,無論怎么設置z-Order都沒用,估計是Google的三星手機的OpenGL-ES做過什么特殊處理吧,導致“坑爹啊…”

[ 萬惡的鋸齒…]

例子

Cocos2d-x提供的相關例子(DrawPrimitivesTest),常見的畫直線、畫圓、畫Bezier線等,都有函數提供,具體還是自己打開tests看看源代碼吧,這里就不詳述了。

[ DrawPrimitivesTest ]

CCSpriteBatchNode

自己的理解

用CCSpriteBatchNode生成的CCSprite共用一個紋理,這樣的好處是生成很多相同的CCSprite很高效,幀數可以很高很穩定。由于這個特點,用來實現粒子效果是一個很好的選擇,不過我還沒有看過cocos2d-x粒子系統的實現,這里不做推測,以免誤導大家。關于CCSpriteBatchNode的用法當然還是tests里面有,有興趣的朋友可以自己看看。

優點

由于draw()實現難度太高,而CCRenderTexture又有花屏的問題,所以嘗試用CCSpriteBatchNode來實現畫圖,繪圖效果很不錯,因為是使用CCSprite做自定義筆刷嘛。幀數保持58-60,很穩定(如果只是單純的創建CCSprite*,然后addChild到Layer里,掉幀會很嚴重的)

缺點

雖然CCSpriteBatchNode效果很不錯,不過也有一個致命的缺點,就是CCSpriteBatchNode*對象不能addChild太多的CCSprite*對象,同事做了一下實驗,大概addChild到16000+個CCSprite后,CCSpriteBatchNode就不能addChild了,也就是說,畫圖畫到16000+個點后,畫筆就“沒墨水”,導致鼠標再怎么拖都沒效果。

查看了一下源代碼,大概是CCSpriteBatchNode在addChild時會重新分配內存,當需要分配的內存很大時,回導致內存分配失敗,從而CCSpriteBatchNode會將這次addChild無效掉。

解決思路有一個,就是來個計數,當CCSpriteBatchNode它addChild到10000個后,用CCRenderTexture截個圖保存當前的畫圖記錄,然后清空CCSpriteBatchNode和把計數置零,再來畫圖。這個操作會有延遲,所以沒有實現。

CCRibbon

自己的理解

CCRibbon應該說是一個線段集吧,與上述方法不同的是,它只能是單一顏色。就是說,你將它setColor為紅,那么你畫過的線條就全部為紅,為藍的話,則線條全部為藍。

生成一個CCRibbon*對象需要指定:筆刷的寬度,筆刷的圖片,線段的長度,筆刷的顏色等參數(Fade最后這個參數暫時還沒搞懂意思…)。

CCRibbon提供addPointAt(CCPoint location, float width),將點以多寬加入到CCRibbon中,這里cocos2d-x對這個點的大小進行計算,從而使線條達到“頭尾窄,身體寬”的效果。這個可以說是優點也可以說是缺點吧,“頭尾窄,身體寬”看起來比較像筆刷,不過想做出均勻的畫筆就不行了。

優點

幀數穩定,筆刷效果不錯。因為CCRibbon也是用draw()進行畫圖,所以不用擔心CCRenderTexture那樣的花屏問題,CCRibbon目前感覺是比較理想的畫圖方法了。

缺點

如果在(100,100)點上一個點,然后跑去(400,400)再點一個點,CCRibbon會自動將兩個點連起來,如果用戶想做出平常畫圖那種“刷刷刷“的排線法,CCRibbon就不行了。解決方法就是每次TouchBegan都生成一個CCRibbon,這樣就不會出現這個問題了,不過生成太多的CCRibbon不知道會不會出現其他問題,比如CCSpriteBatchNode那個…

由于CCRibbon是單一顏色的,所以想畫彩色圖是不行的。解決方法當然還是像上面那樣,生個多個CCRibbon*對象,每個CCRibbon*對象的顏色不同就行了。

最后感覺不太人性化的就是畫筆只能“頭尾窄,身體寬“,如果想畫出”頭身尾均勻“的線條,用CCRibbon也許做不了。

例子

Cocos2d-x沒有直接給出CCRibbon的例子,所以這個不能夠在tests上看到使用方法,不過自己稍稍嘗試一下就行了,用法挺簡單。

責任編輯:佚名 來源: Cocos2d-x中文論壇
相關推薦

2011-12-12 10:40:08

Cocos2d-X游戲開發開發環境

2013-05-22 15:49:46

2012-04-17 12:38:46

cocos2d-x

2012-04-17 12:44:38

cocos2d-x

2013-12-03 10:58:50

Cocos2D-X磚塊地圖

2013-04-16 10:02:47

cocos2d-x懶人Android開發

2012-04-19 10:03:12

Cocos2d-x

2013-05-22 14:38:44

iOS開發Cocos2d-x坐標系統

2012-04-17 12:58:44

Cocos2D-X

2013-06-03 17:04:20

CocoStudioCocos2D-X添加CocoStudi

2014-07-31 16:57:30

2012-02-19 20:10:23

Cocos2d-x fCocos2dWindows Pho

2012-04-17 13:12:00

2012-04-17 12:47:27

cocos2d-x

2012-04-17 10:59:31

cocos2d-x

2012-04-17 10:06:08

cocos2d-x

2014-08-13 10:07:02

游戲引擎

2013-11-13 16:31:32

Cocos2d-x

2013-06-07 14:06:52

移動開發Android開發cocos2d-x

2012-05-09 10:09:57

Cocos2d-xAndroidiOS
點贊
收藏

51CTO技術棧公眾號

色网站国产精品| 成人v精品蜜桃久久一区| 亚洲一级黄色av| 天堂在线中文在线| av2020不卡| 久久天堂av综合合色蜜桃网| 成人精品一区二区三区电影黑人 | 一级片在线观看视频| 牛夜精品久久久久久久99黑人| 亚洲国产精品人久久电影| 黄色成人免费看| 女子免费在线观看视频www| 久久一区二区三区四区| 亚洲最大福利视频| 国产精品suv一区| 欧美日韩国内| 少妇高潮久久77777| 欧洲熟妇的性久久久久久| 欧洲一级精品| 亚洲国产日韩综合久久精品| 亚洲国产日韩欧美| 少妇av在线播放| 精品中文av资源站在线观看| 国产91对白在线播放| 最新一区二区三区| 精品成av人一区二区三区| 欧美岛国在线观看| 在线观看日本www| 日本精品另类| 色综合久久久网| 97超碰在线人人| av毛片在线免费看| 国产精品国产自产拍高清av | 91超碰国产精品| 亚洲欧美在线一区二区| 国产精品久久久久久亚洲色| 伊人久久大香线蕉综合影院首页| 91久久精品午夜一区二区| 欧美视频在线观看网站| 欧美韩日亚洲| 亚洲精品国产精华液| 一区二区日本伦理| 韩国精品视频| 26uuu国产电影一区二区| 国产精品免费观看高清| 亚洲黄色一级大片| 国产精品一区2区| 91精品视频一区| 一个人看的www日本高清视频| 天堂一区二区在线免费观看| 日本成人黄色片| 国产嫩bbwbbw高潮| 美女黄网久久| 国产精品99久久久久久久久| 区一区二在线观看| 久久午夜激情| 国产精品美女免费看| 亚洲性猛交富婆| 蜜桃av一区二区三区电影| 国产精品偷伦免费视频观看的| 青青草视频在线观看免费| 久久久噜噜噜| 国产精品免费久久久久影院| 中文字幕免费播放| 久久精品国产99久久6 | 国产精品一级视频| 国产乱子伦一区二区三区国色天香 | 日本老熟俱乐部h0930| 亚洲国产一区二区在线观看| 久久伊人色综合| 唐朝av高清盛宴| 亚洲黄色三级| 国产99久久精品一区二区永久免费 | 国产婷婷精品| 国产精品久久久久7777婷婷| 中文字幕在线日亚洲9| 精品一区二区免费在线观看| 97超碰资源| 午夜视频免费在线| 国产精品无圣光一区二区| 久久精品国产精品亚洲精品色| 在线视频中文字幕第一页| 精品高清一区二区三区| 在线观看av日韩| 国产激情综合| 日韩av资源在线播放| 欧美激情 一区| 午夜国产精品视频免费体验区| 久久久久久亚洲| 日韩欧美国产另类| 国产精品99久| 精品欧美日韩在线| a√在线中文网新版址在线| 一区二区三区日韩在线观看| 精品中文字幕av| 91丨精品丨国产| 亚洲精品720p| 中国毛片直接看| 国产毛片一区| 51成人做爰www免费看网站| 日韩av高清在线| 亚洲精品视频一区二区| 亚洲国产精品久久久久爰色欲| 亚洲精品aa| 亚洲精品一区二区三区婷婷月| 国产美女高潮视频| 国产精品久久久久久久久久妞妞| 国产欧美日韩中文字幕在线| 图片区 小说区 区 亚洲五月| 中日韩av电影| 色婷婷综合久久久久中文字幕 | 综合久久国产| 欧美日韩美女| 亚洲国产精品va在线| 婷婷伊人五月天| 日韩国产在线观看| 国产一区二区精品免费| 成人影院在线看| 欧美专区日韩专区| 三级黄色片网站| 精品91久久久久| 91在线免费视频| 91在线不卡| 在线欧美日韩国产| www.免费av| 伊人成人在线视频| 亚洲r级在线观看| 中文字幕在线视频区| 色综合婷婷久久| 在线观看国产免费视频 | 黄色片视频在线免费观看| 91成人精品在线| 毛片精品免费在线观看| 91国在线视频| 国产精品久久久久久久久免费樱桃 | 久久精品这里有| 国产精品91一区二区| 日本丰满少妇黄大片在线观看| 成人亚洲视频| 中文字幕日韩在线播放| 不卡av电影在线| 国产校园另类小说区| 久草精品在线播放| 国产欧美一区二区精品久久久| 2018国产精品视频| 天堂√在线中文官网在线| 午夜久久久久久电影| 国产婷婷在线观看| 中文精品视频| 精品国产日本| 韩国成人漫画| 国产亚洲精品久久| 中文在线资源天堂| 国产无一区二区| 91极品尤物在线播放国产| 日韩高清欧美| 91九色蝌蚪国产| 手机av在线播放| 亚洲国产精品中文| 日本天堂网在线| 国产日本一区二区| 91看片就是不一样| 色小子综合网| av成人免费观看| 欧亚av在线| 亚洲欧洲日产国产网站| 最新黄色网址在线观看| 中文字幕中文字幕在线一区| 两女双腿交缠激烈磨豆腐| 亚洲夜间福利| 狠狠色综合欧美激情| 天天免费亚洲黑人免费| 精品精品国产国产自在线| 国产av无码专区亚洲av| 午夜精品久久久久久久久久久| 亚洲欧美色图视频| 久久99精品久久久久久久久久久久 | 国产视频福利在线| 91精品久久久久久久99蜜桃| 国产亚洲色婷婷久久99精品| 久久免费美女视频| 日韩在线不卡一区| 激情欧美日韩| 视频在线99| 亚洲不卡在线| 国产成人精品免费视频| 国内精品久久久久久野外| 亚洲精品suv精品一区二区| 黄色av一区二区| 亚洲一卡二卡三卡四卡五卡| av中文字幕免费观看| 国产乱码精品一区二区三区忘忧草| 久久99中文字幕| 日韩国产一区二区三区| 国产欧美日韩在线播放| 日韩欧国产精品一区综合无码| 久久久视频精品| 麻豆系列在线观看| 亚洲免费视频观看| av老司机久久| 欧美性大战久久久久久久| 精品人妻在线播放| 亚洲欧洲国产专区| 亚洲熟妇无码av| 国产福利精品一区二区| 狠狠热免费视频| 99视频一区| 神马午夜伦理影院| av一区二区在线观看| 国产欧美日韩伦理| 日韩欧美一级| 91精品久久久久久综合乱菊 | 日本a在线播放| 亚洲精品午夜精品| 免费观看a视频| 欧美一级二级三级蜜桃| 凹凸精品一区二区三区| 午夜久久久久久久久 | 91福利在线看| 日韩免费av片| 一区二区三区日韩欧美精品| 国产视频精品免费| 国产欧美精品区一区二区三区| 中国极品少妇videossexhd| 国产精品一区二区你懂的| 91高清国产视频| 人人精品人人爱| 国产成人亚洲精品无码h在线| 亚洲二区精品| 国产原创中文在线观看| 精品1区2区3区4区| 中国丰满熟妇xxxx性| 国自产拍偷拍福利精品免费一| 黄色网址在线免费看| 国产精品久久久久一区二区三区厕所| 免费在线观看一区二区| 爽爽窝窝午夜精品一区二区| 国产一区喷水| 麻豆精品少妇| 国语精品中文字幕| 日本一道高清一区二区三区| 国产一区二区高清不卡| 欧美jizz19性欧美| 久久大香伊蕉在人线观看热2| 国产精品毛片久久久| 黑人另类av| 婷婷成人影院| 日本精品一区二区| 精品日韩毛片| 亚洲高清123| 97在线精品| 最近中文字幕免费mv| 一区二区三区国产精华| 男人草女人视频| 国产精品hd| av在线观看地址| 91久久中文| 成人在线免费在线观看| 老牛嫩草一区二区三区日本 | 国产成人午夜高潮毛片| 亚洲成人精品在线播放| 成人久久视频在线观看| 国产 中文 字幕 日韩 在线| 久久久久9999亚洲精品| 国产又粗又长又硬| 樱桃视频在线观看一区| 国产精久久久久久| 色诱视频网站一区| 这里只有久久精品视频| 欧美放荡的少妇| 亚洲高清在线观看视频| 日韩经典一区二区三区| 国产福利在线| 美女少妇精品视频| av剧情在线观看| 国产精品海角社区在线观看| 少妇高潮一区二区三区99| 97超碰人人模人人爽人人看| 日韩中出av| 亚洲精品国产精品国自产观看 | 精品视频9999| 伊人久久视频| 91成人免费观看| 天天躁日日躁狠狠躁欧美巨大小说| 视频一区二区三| 在线看片日韩| 奇米影视四色在线| 成人18精品视频| 人妻无码一区二区三区免费| 亚洲综合免费观看高清在线观看| 成人午夜视频在线播放| 欧美一区二区美女| 精品欧美不卡一区二区在线观看| 精品国产一区二区在线| 色戒汤唯在线观看| 91嫩草在线视频| 免费欧美视频| 超碰人人爱人人| 青青草精品视频| 老司机免费视频| 日韩理论片一区二区| 99久在线精品99re8热| 欧美日韩在线一区二区| 四虎永久在线观看| 久久精品一区中文字幕| 丁香六月综合| 成人免费视频观看视频| 色999国产精品| 情侣黄网站免费看| 成人污污视频在线观看| 成人自拍小视频| 在线观看欧美日本| 特级丰满少妇一级aaaa爱毛片| 日韩亚洲综合在线| 日韩免费小视频| 精品久久久久久一区二区里番| 91精品国产乱码久久久久久久| 国产精品涩涩涩视频网站| 9人人澡人人爽人人精品| 国产亚洲色婷婷久久99精品| 777午夜精品视频在线播放| 草碰在线视频| 日本午夜在线亚洲.国产| 开心激情综合| 霍思燕三级露全乳照| 国产乱码精品一区二区三区五月婷| av片在线免费看| 精品视频1区2区3区| 毛片免费在线播放| 欧美一区在线直播| 欧美大奶一区二区| www插插插无码视频网站| 国产a久久麻豆| 黄色一级片在线| 欧美一级在线观看| 9191在线播放| 亚洲一区二区三区视频播放| 天天做综合网| 在线观看国产福利| 亚洲男同1069视频| 国产v片在线观看| 久久在线精品视频| 日韩三级精品| 成人区一区二区| 成人免费视频网站在线观看| 久久久夜色精品| 亚洲成人精品视频| 182在线视频观看| 国产一区二区免费电影| 国产精品外国| 尤物视频最新网址| 91精品1区2区| 日韩精品成人av| 亚洲影院高清在线| 在线日韩中文| 免费黄色在线视频| 欧美主播一区二区三区| h视频在线免费| 91久久精品视频| 国产精品www994| 中文字幕免费高清视频| 欧美性xxxx极品hd满灌| av网站在线免费播放| 91精品久久久久| 欧美日本不卡| www.超碰97| 欧美视频日韩视频| 黄色网在线免费看| 国产精品乱码视频| 久久久蜜桃一区二区人| 日本成人精品视频| 日韩免费观看高清完整版在线观看| 国产福利在线免费观看| 欧美久久久久久久| 精品一区二区三区欧美| 免费毛片一区二区三区| 亚洲欧美中文字幕在线一区| 欧美另类激情| 成人免费毛片在线观看| 久久精品欧美一区二区三区不卡| 一二区在线观看| 97视频在线观看视频免费视频| 国产一区2区| 久草福利在线观看| 色综合av在线| 日本不卡影院| 日韩一区二区电影在线观看| 国产精品一区二区x88av| 中文人妻av久久人妻18| 久久午夜a级毛片| 国产精品一线天粉嫩av| 欧美激情第四页| 在线观看成人小视频| 人妖欧美1区| 日韩中文不卡| 成人av电影免费观看| 在线视频免费观看一区| 97碰在线观看| 你懂的国产精品| 天天操天天舔天天射|