精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美成人中文| 999这里有精品| 扒开伸进免费视频| 波多野结衣在线影院| av成人资源| 国产视频一区二区在线| 97视频在线观看视频免费视频 | 成人嘿咻视频免费看| 亚洲综合自拍偷拍| 成人乱色短篇合集| 中文字幕欧美激情极品| 成人欧美一区二区三区的电影| 国产91精品在线观看| 久久伊人91精品综合网站| 中文字幕第80页| 高清中文字幕一区二区三区| 新67194成人永久网站| 精品国产免费一区二区三区四区 | 欧美精品一卡| 91精品国产综合久久精品 | 美女做暖暖视频免费在线观看全部网址91 | 久久日韩精品| 亚洲精品午夜国产va久久成人| 亚洲一区二区三区四区电影| 亚洲三级视频在线观看| 成人疯狂猛交xxx| 波多野结衣视频网站| 欧美男男freegayvideosroom| 亚洲一区二区三区激情| 国产亚洲情侣一区二区无| 四虎永久在线精品| 日韩mv欧美mv国产网站| 日韩欧美中文字幕在线播放| 91久久久精品| 欧美三级 欧美一级| 97品白浆高清久久久久久| 欧美怡红院视频| 亚洲三区在线| 国产黄色一区二区| 国产精品99一区二区| 中文字幕亚洲欧美日韩2019| 亚洲精品视频三区| 国产在线观看91| 国产盗摄女厕一区二区三区| 97婷婷涩涩精品一区| 女人18毛片毛片毛片毛片区二| 欧美激情三区| 亚洲综合免费观看高清完整版 | 国产精品久久久久久久电影| 久久日免费视频| 蜜桃a∨噜噜一区二区三区| 欧美色综合影院| 91精品一区二区三区四区| 黄色av网址在线| 首页欧美精品中文字幕| 日韩在线视频免费观看高清中文| 想看黄色一级片| 国产第一精品| 亚洲成a人v欧美综合天堂下载 | 两性午夜免费视频| 日韩另类在线| 久久精品视频免费| 91精品视频一区| 一级片视频免费| 最新亚洲激情| 久久精品国产亚洲精品| 国模私拍在线观看| 人人玩人人添人人澡欧美| 一级中文字幕一区二区| 男人c女人视频| 黄色片在线看| 国产成人av自拍| 国产精品一码二码三码在线| 国产精品国产精品国产| 亚洲另类自拍| 青草热久免费精品视频| 翔田千里88av中文字幕| 国内自拍欧美| 宅男噜噜噜66一区二区66| 激情六月丁香婷婷| 天堂av中文在线| 亚洲国产sm捆绑调教视频| 色乱码一区二区三在线看| 俄罗斯嫩小性bbwbbw| 成人免费av在线| 成人福利视频在线观看| 国产熟女一区二区丰满| 日产国产欧美视频一区精品| 久久久久久久网站| 91精品少妇一区二区三区蜜桃臀| 亚洲最大黄网| 日韩在线观看高清| 成人在线一级片| 乱亲女h秽乱长久久久| 日韩一区二区在线看| 亚欧激情乱码久久久久久久久| 校园春色亚洲| 疯狂做受xxxx欧美肥白少妇 | 一二三区精品| 欧美激情久久久久| 精品一区在线观看视频| 99精品视频精品精品视频| 亚洲色图色老头| 日本丰满少妇裸体自慰| 国产精品白丝av嫩草影院| 亚洲美女激情视频| 女人被狂躁c到高潮| 成人一区不卡| 久久久视频免费观看| 国产精品久久久精品四季影院| 夜夜嗨av一区二区三区网站四季av| 国产精品第一区| 好吊视频一区二区三区| 国产精品久久久久久久久动漫| 日韩一区二区三区资源| 91女主播在线观看| 国产精品理伦片| 中文字幕黄色大片| 国产原厂视频在线观看| 日韩欧美在线视频免费观看| 91热视频在线观看| 免费精品国产| 久久久久久香蕉网| 国产免费的av| 国产精品久久看| 欧美在线观看视频网站| 色天使综合视频| 91精品福利在线| av亚洲天堂网| 亚州av一区| 欧美精品激情视频| 国产视频一二三四区| 国产精品午夜久久| 永久免费网站视频在线观看| 亚洲www啪成人一区二区| 在线观看免费亚洲| 五月天视频在线观看| 欧美人与牛zoz0性行为| 7m精品福利视频导航| 午夜久久久久久久久久影院| 免费黄网站欧美| 51午夜精品| 午夜18视频在线观看| 欧美国产综合一区二区| 黄色网在线视频| 疯狂欧洲av久久成人av电影| 亚洲电影免费观看高清完整版在线| 国产麻豆xxxvideo实拍| 国产欧美日韩免费观看| 九九热精品视频在线播放| av中文在线播放| www.亚洲在线| 亚洲激情啪啪| 男男gaygays亚洲| 91国产免费观看| 亚洲一级中文字幕| 中文字幕av亚洲精品一部二部| 国产精品专区一| 你懂的网站在线| 国产精品人妖ts系列视频| 牛夜精品久久久久久久| 成人中文字幕视频| 久久久久久久久久久av| 欧美一区二不卡视频| 午夜欧美视频在线观看| 三级黄色片网站| 老司机精品视频网站| 日韩三级电影| 91国产一区| 精品偷拍各种wc美女嘘嘘| 女同久久另类69精品国产| 亚洲精品一二| 蜜桃传媒视频麻豆第一区免费观看 | 日本一区二区三区中文字幕| 精品国产依人香蕉在线精品| 99久久免费国产精精品| 亚洲第一在线综合网站| 国产呦小j女精品视频| 天天影视天天精品| 成人看片视频| 精品成人一区二区三区免费视频| 欧美性猛交视频| 亚洲一二三四五六区| 丁香六月综合激情| av观看免费在线| 中文字幕亚洲综合久久五月天色无吗'' | 成人激情视频网站| 中国人体摄影一区二区三区| 精品国产第一国产综合精品| 亚洲天堂男人天堂| 99久在线精品99re8热| 国产大片一区二区| 人妻有码中文字幕| 91成人精品视频| 国产日韩换脸av一区在线观看| 第一福利在线| 日韩欧美中文字幕制服| 日韩欧美成人一区二区三区 | 日韩久久免费电影| 亚洲一区二区激情| 国产午夜精品久久久久久久| 91精品999| 国产欧美高清| 久久国产精品久久| 在线观看亚洲精品福利片| 97久久伊人激情网| 91亚洲天堂| 精品成人一区二区三区四区| 日韩欧美一级大片| 偷窥少妇高潮呻吟av久久免费| 国产亚洲精品成人a| 欧美不卡视频| 深田咏美在线x99av| 里番精品3d一二三区| 成人精品一区二区三区电影免费| 345成人影院| 久久久久久久色| 26uuu亚洲电影在线观看| 国产亚洲在线播放| 亚洲欧美色视频| 欧美va在线播放| www日韩精品| 亚洲综合区在线| 国产一二三区精品| 欧美激情一区二区三区四区| 国产草草浮力影院| 成人永久看片免费视频天堂| 久久6免费视频| 日韩**一区毛片| 日韩欧美在线免费观看视频| 亚洲一区二区三区高清| 久久这里只有精品18| 美腿丝袜亚洲图片| 成人国产一区二区| 欧美成人精品午夜一区二区| 国产日本欧美一区二区三区在线| 在线看欧美视频| 国产精品精品视频| 亚洲精品555| 国产精品久久久久久久久久久久久| 亚洲美女尤物影院| 98精品在线视频| 久草在线资源福利站| 永久555www成人免费| 国产毛片久久久久| 欧美日韩大陆在线| 国产无套粉嫩白浆内谢| 国产亚洲精久久久久久| 中文字幕狠狠干| 2023国产一二三区日本精品2022| 三上悠亚在线一区二区| 日韩国产在线一| 日韩精品免费一区| 中文精品久久| 大西瓜av在线| 亚洲欧洲一区| 国产亚洲综合视频| 亚洲精品小说| 超碰10000| 激情偷拍久久| 一区在线电影| 一区二区电影| 免费高清一区二区三区| 亚洲国产高清一区二区三区| 欧美日韩一道本| 亚洲女同另类| 国产91porn| 91久久视频| 人人干人人视频| 久久99精品国产| 能在线观看的av| 日韩电影在线免费看| 久久精品国产露脸对白| 成人深夜在线观看| 色婷婷av777| 国产精品日韩成人| 精品少妇久久久| 综合久久综合久久| 亚洲一级黄色录像| 亚洲人成在线观看一区二区| 久久久久久久国产精品毛片| 婷婷综合另类小说色区| 91视频久久久| 欧美一二三区在线| 日本一级在线观看| 亚洲国产97在线精品一区| 欧美午夜黄色| 日韩视频永久免费观看| a级片免费在线观看| 久久国产色av| 四虎久久免费| 在线视频欧美日韩| 日韩另类在线| 国产精品www网站| 97青娱国产盛宴精品视频| 欧洲视频一区二区三区| 亚洲婷婷影院| 免费国产一区二区| 婷婷成人基地| 国产v亚洲v天堂无码久久久| 国内精品久久久久影院一蜜桃| 超碰在线97免费| 国产成人精品网址| 免费黄在线观看| 亚洲成av人在线观看| 伊人网视频在线| 欧美日韩国产综合一区二区| 欧美在线精品一区二区三区| 中文字幕欧美精品在线| 高潮在线视频| 青草成人免费视频| 国产成人夜色高潮福利影视 | 黄色成人在线网址| 久久男人资源站| 尤物精品在线| 手机在线国产视频| 国产精品乱码久久久久久| 亚洲天堂一区在线观看| 欧美不卡一区二区三区四区| 日韩在线资源| 国产成人一区二区三区电影| 精品欧美一区二区三区在线观看| 99r国产精品视频| 亚洲欧美色图| 中文字幕第三区| 成+人+亚洲+综合天堂| 天天操天天摸天天舔| 色猫猫国产区一区二在线视频| 天天干天天做天天操| 亚洲色图综合久久| 日韩欧美精品一区二区三区| 国产精品xxxx| 国产精品v欧美精品v日本精品动漫| 午夜免费看毛片| 国产精品成人免费精品自在线观看| 免费视频久久久| 777欧美精品| 亚洲成人三级| 国产精品自在线| 第四色成人网| 孩娇小videos精品| 中文字幕亚洲在| 国产精品色综合| 日韩精品高清在线观看| av大片在线观看| 国产精品极品美女在线观看免费 | 久久亚洲春色中文字幕久久久| 日本熟妇乱子伦xxxx| 精品国产一二三| а√在线天堂官网| 久久综合九色综合网站| 久久精选视频| 色欲无码人妻久久精品| 91尤物视频在线观看| 99自拍偷拍视频| 亚洲成av人片一区二区三区| 日韩一级片免费| 欧美中文在线观看国产| 国产精品亚洲人成在99www| 日本www.色| 综合自拍亚洲综合图不卡区| 国产成年妇视频| 久久久中精品2020中文| 欧美a一欧美| 婷婷丁香激情网| 亚洲色图第一区| 丰满人妻一区二区三区四区53 | 国产视频网站一区二区三区| 男人草女人视频| 99久久久无码国产精品| 狠狠人妻久久久久久| 中文字幕亚洲欧美日韩高清 | 久久久久一区二区三区| 日韩成人精品在线观看| 91香蕉一区二区三区在线观看| 欧美一二三四区在线| 瑟瑟视频在线看| 一区二区免费在线观看| 国产91丝袜在线播放0| 青青青国产在线| 久久久国产视频| 欧美中文一区| 午夜免费看视频| 亚洲国产乱码最新视频| 邻居大乳一区二区三区| 91视频8mav| 媚黑女一区二区| 国产极品国产极品| 亚洲日本aⅴ片在线观看香蕉| 图片一区二区| 狠狠爱免费视频| 亚洲色图视频免费播放| 无码国产伦一区二区三区视频 | 91精品成人久久| 久久亚洲国产| 国产精彩免费视频| 亚洲精品中文在线影院| 国产精品国产精品国产专区| 久久全球大尺度高清视频| 成人同人动漫免费观看|