日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CCSpriteBatchNode的使用

發布時間:2024/10/12 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CCSpriteBatchNode的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

研究了一下CCSpriteBatchNode,說一下個人理解。

我們通常對精靈添加的屏幕的步驟是創建精靈,添加到屏幕。現在我們使用了CCSpriteBatchNode以后,

精靈的添加是首先創建精靈,然后將精靈添加到CCSpriteBatchNode上面去,最后再將CCSpriteBatchNode里面的眾多精靈一次性的繪制到屏幕上面。

這樣就減少了渲染次數,提高了幀率。不過需要注意的是:添加進batchNode里面的精靈,都是要在CCSpriteBatchNode中是可以找到的

如下面的代碼:

CCSpriteBatchNode *batchNode = CCSpriteBatchNode::create("icon.png");this->addChild(batchNode);pSprite = CCSprite::create("icon.png");pSprite->setPosition(ccp(150,220));//精靈添加到batchNode中,此時精靈已經繪制到了屏幕上了batchNode->addChild(pSprite);


上面的代碼就是batchNode中因為存在icon.png這個圖片,所以是icon.png的sprite可以添加到這個batchNode里面去
如果你添加其它圖片到batchNode里面去的話,直接報錯,程序掛了。
但是我們怎么樣才能添加多張不同圖片的精靈到Sprite里面呢?
可以通過CCSpriteFrameCache將TP打包的多張圖片讀入內存,這樣就可以解決上面那個需求了。

如下代碼:

//載入TP打包的plist和png文件到內存(有2張圖片分別是res1.png和res2.png)CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("res.plist");CCSpriteBatchNode *batchNode = CCSpriteBatchNode::create("res.png");this->addChild(batchNode);//創建精靈pSprite = CCSprite::createWithSpriteFrameName("res1.png");pSprite->setScale(0.2f);pSprite->setPosition(ccp(150,220));//精靈添加到batchNode中,此時精靈已經繪制到了屏幕上了batchNode->addChild(pSprite);pSprite2 = CCSprite::createWithSpriteFrameName("res2.png");pSprite2->setScale(0.2f);pSprite2->setPosition(ccp(100,250));//精靈添加到batchNode中,此時精靈已經繪制到了屏幕上了batchNode->addChild(pSprite2);

上面的代碼在屏幕上只繪制1次。不像我們創建精靈直接繪制到屏幕上那樣,創建幾個精靈添加到屏幕上就需要繪制幾次。假如上面的代碼沒有使用CCSpriteBatchNode,而是直接創建精靈添加到CCLayer上的話,我們的繪制次數是2、

當我們在屏幕上繪制幾千個精靈時,這種使用batchNode的好處就可以體現了。

可以把CCSpriteBatchNode想像成一個Layer(繪制到真正CCLayer屏幕之前的緩沖層Layer),關于精靈疊放層次的調整是在添加到batchNode上時調整的,調整好以后,就可以再將這一張batchNode整個繪制到CCLayer屏幕上面。

所以我們不能在將batchNode添加到真正的層時,再來調整精靈的層次結構,這時已經遲了。


?

轉載于:https://www.cnblogs.com/vokie/p/3602061.html

總結

以上是生活随笔為你收集整理的CCSpriteBatchNode的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。