欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

【Cocos2d游戲開(kāi)發(fā)之九】講解CCSpriteBatchNode

系統(tǒng) 1743 0

Himi 原創(chuàng),轉(zhuǎn)載請(qǐng)注明!

原文地址: http://blog.csdn.net/xiaominghimi/article/details/6761811

前幾節(jié)由于時(shí)間緊張,只是將一些遇到的問(wèn)題拿出來(lái)進(jìn)行分享經(jīng)驗(yàn),那么今天抽空寫(xiě)一篇常用的精靈以及精靈常用和注意的一些知識(shí);那么由于cocos2d教程基本很完善,那么今天Himi介紹一些注意點(diǎn)和細(xì)節(jié)點(diǎn)分享大家;

首先對(duì)于使用過(guò)精靈的童鞋很熟悉CCSpriteBatchNode,至少大家都會(huì)知道它能優(yōu)化精靈,但是至于優(yōu)化原理這里簡(jiǎn)單說(shuō)下:

一般使用精靈CCSprite的時(shí)候,都是直接使用[CCLayer* addChild:CCSprite *];,假設(shè)我們創(chuàng)建一百個(gè)精靈,那么當(dāng)前的CCLayer會(huì)為100個(gè)精靈單獨(dú)繪制;

如果使用精靈集合-CCSpriteBatchNode的話,直接將集合CCSpriteBatchNode添加CCLayer中即可,即使創(chuàng)建一百個(gè)精靈,我們也都是將100個(gè)精靈添加到集合中,[CCSpriteBatchNode* addChild:CCSprite];而已;

兩者的區(qū)別:

1. 直接使用CCLayer進(jìn)行添加精靈,CCLayer上有幾個(gè)精靈,那么底層就會(huì)繪制幾次精靈;

簡(jiǎn)單可以理解成底層繪制方式如下:

for(int i= 0;i<100;i++){open-draw-close;}

但是使用集合的話,CCLayer只需要對(duì)精靈集合進(jìn)行一次渲染,

簡(jiǎn)單可以理解成底層繪制方式如下:

open-draw(100次繪制)-close

從以上兩種方式可以看出兩者的區(qū)別了,第二種使用精靈集合省去了99次open和close的過(guò)程,從而達(dá)到優(yōu)化作用;

上次參加iOS第四次開(kāi)發(fā)者大會(huì),cocos2d-x的張哲在演講中重點(diǎn)拿出了這一點(diǎn)進(jìn)行講解,他在ipad上使用兩種方式給出的數(shù)據(jù)如下:

在屏幕中繪制3000個(gè)精靈,直接使用CCLayer添加精靈的方式,幀數(shù)從60下降到不到20幀;

同樣在屏幕中繪制3000個(gè)精靈,使用CCSpriteBatchNode的渲染方式,幀數(shù)保持在50幀左右;

當(dāng)然Himi也親自測(cè)試過(guò),但是由于真機(jī)調(diào)試的還沒(méi)申請(qǐng)下來(lái),所以只能在模擬器上測(cè)試,發(fā)現(xiàn)同時(shí)繪制300個(gè)精靈,兩種方式幀數(shù)一致,無(wú)區(qū)別;不是因?yàn)闆](méi)差別,而是因?yàn)樵趇OS模擬器中,幀數(shù)與屏幕中的精靈數(shù)量有關(guān),真機(jī)則會(huì)很明顯的體現(xiàn)兩者的區(qū)別;


2.使用CCSpriteBathNode雖然能達(dá)到優(yōu)化,但是要注意一點(diǎn):

初始化精靈集合CCSpriteBatchNode的時(shí)候會(huì)加載一張圖片資源(或者pvr文件等),那么限制其精靈集合的子精靈都必須使用集合加載的這張圖才行,否則會(huì)給出警告;

3.使用CCSpriteBatchNode還要注意一點(diǎn),因?yàn)榫`都存放在集合中,那么這個(gè)集合CCSpriteBatchNode中的節(jié)點(diǎn)(精靈)都將在同一個(gè)z軸上,同一深度上;


在上一章中介紹過(guò)TexturePacker工具的作用,那么這里不介紹如何使用,而是說(shuō)下主要的兩點(diǎn),一般使用TexturePacker工具都會(huì)將很多精靈圖片或者動(dòng)作幀放在一起打包成“.pvr.ccz”、".plist"、“-hd.pvr.ccz”和"-hd.plist"的四個(gè)文件,其中兩個(gè)-hd的是使用工具生成的打包資源的高清版本(940*480)使用的,這個(gè)不再?gòu)?qiáng)調(diào)了;

至于".pvr.ccz"格式的則是最壓縮、最適合iOS的資源文件格式了,那么與".plist"兩個(gè)文件的使用方式其實(shí)也很簡(jiǎn)單,代碼如下:

以上代碼是將".pvr.ccz"資源包的圖進(jìn)行加載到精靈幀緩存中,一旦加載過(guò)后,你就可以任意使用了,比如你將icon.png和himi.png兩張圖片一起利用工具打包成“.pvr.ccz”、".plist"兩個(gè)文件后,將兩個(gè)文件放在項(xiàng)目下(兩張圖片不需要了),然后使用剛才的代碼將資源包加載緩存中,只需要加載plist文件即可,pvr.ccz的不需要加載,但是也需要放在項(xiàng)目下,然后你在創(chuàng)建精靈的時(shí)候可以使用以下形式進(jìn)行創(chuàng)建精靈:


通過(guò)上面這行代碼可以看出,此種創(chuàng)建精靈的方式是利用幀緩存創(chuàng)建的,那么也就是說(shuō)一旦加載的許多個(gè)一樣的精靈的時(shí)候利用此方式相當(dāng)優(yōu)化運(yùn)行內(nèi)存,最容易想到的就是創(chuàng)建子彈;

那么肯定會(huì)有童鞋說(shuō),那么如果把這資源文件與CCSpriteBathNode結(jié)合使用豈不是更嗨皮,沒(méi)錯(cuò),可以的,加載的時(shí)候只需要將如下創(chuàng)建集合即可:


最后順便跟大家強(qiáng)調(diào)需要重點(diǎn)注意的三點(diǎn):

1.使用TexturePacker工具雖然可以對(duì)應(yīng)生成@2x與-hd文件,但是工具會(huì)將你導(dǎo)入的所有精靈圖的會(huì)做作為-hd的資源包生成,而對(duì)應(yīng)的非高清的則是當(dāng)前圖片尺寸縮放一半的資源而已;

2.如果你項(xiàng)目中需要加載使用一張"himi.png"的圖的話,那么在cocos2d引擎開(kāi)發(fā)的項(xiàng)目中,首先會(huì)去資源中尋找"himi-hd.png"的圖片,如果找不到則會(huì)去尋找"himi@2x.png"的圖,所以這里一定要注意資源的命名和使用;

3.在cocos2d 1.0.0的版本中千萬(wàn)不要在使用pvr.ccz與plist文件的時(shí)候加上以下代碼:


一些教程都會(huì)加,但是加上之后發(fā)現(xiàn)圖片透明像素都被白色填充!

而且在使用TexturePacker工具選取打包成pvr.ccz格式的時(shí)候會(huì)提示讓你加上這么一句代碼:

工具原文提示如下:

【Cocos2d游戲開(kāi)發(fā)之九】講解CCSpriteBatchNode與TP工具的".pvr.ccz",".plist"共用的終極精靈優(yōu)化及注意事項(xiàng)!

Himi在代碼中測(cè)試過(guò),有木有這句都無(wú)所謂,不會(huì)有什么影響,至少在cocos2d 1.0.0的版本中加不加無(wú)所謂;

好了,這篇就到這里,繼續(xù)忙了。。。。。。




【Cocos2d游戲開(kāi)發(fā)之九】講解CCSpriteBatchNode與TP工具的".pvr.ccz",".plist"共用的終極精靈優(yōu)化及注意事項(xiàng)!


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 污网站在线看 | 不卡一区 | 免费在线成人 | 天天操天天操天天操香蕉 | 久久福利 | 免费黄色在线观看 | a一级黄| 99久久99热这里只有精品 | 天天操天天舔天天干 | 午夜精品久久久久久久久久久久久 | 一级一级 a爱片免费视频 | 午夜精品久久久久久久男人的天堂 | 中日欧洲精品视频在线 | 中文字幕第一页在线 | 成人97在线观看免费高清 | 五月婷婷在线播放 | 国产美女一区二区 | 国产不卡一区 | 欧美视频在线免费播放 | 九九99国产精品视频 | 美腿丝袜中文字幕 | 伊人成人在线观看 | 伊人青青操 | 91精品国产综合久久青草 | 日本免费在线 | 午夜久久久久久网站 | 欧美特黄a级高清免费大片 精品日本三级在线观看视频 | 久久久婷 | 亚洲日韩欧美视频 | 精精国产xxxx视频在线 | 免费av大全| 免费99热在线观看 | 奶子吧naiziba.cc免费午夜片在线观看 | 国产麻豆一区二区三区 | 特级黄一级播放 | 日韩电影网站 | 国产乱精品一区二区三区 | 亚洲综合日韩欧美一区二区三 | 极品嫩模私拍后被潜在线观看 | 亚洲日韩中文字幕一区 | 精品乱子伦一区二区三区 |