中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

cocos2dx Auto-batching的使用

發布時間:2020-07-05 18:24:55 來源:網絡 閱讀:401 作者:a1989229 欄目:開發技術

根據官方文檔于cocosdx3.0+中推出了Auto—batching的新功能 這個東西到底有什么作用呢?


我們知道在我們的游戲開發中經常會遇到要在屏幕上出現許多相同精靈的情況(比如LOL中的一大群小兵) 根據我們的經驗可以得知 在加載精靈時候都會進行一次渲染 那么問題來了 我們每次想加載一大批相同精靈時都需要對每一個精靈進行多次渲染嗎?


官方文檔說明 Auto-batching(自動批處理)生效需要滿足以下條件 

  1. 確保精靈擁有相同的TextureID(精靈表單SpriteSheet)

  2. 確保都擁有相同的材質和混合功能

  3. 不能再次添加到SpriteBatchNode上


簡而言之就是只要我們用同一張圖片創造精靈,并且沒有做特殊處理就可以滿足條件


但是有些情況需要注意:


for(int i =0;i<10000;i++)

auto a = sprite::create("sprite1.png");

this->addchild(a);


auto b = sprite::create("sprite2.png");

this->addchild(b);


}

因為我們在一個循環里面每次創建了兩個精靈 雖然對于a和b精靈的循環來說是用了同一張圖片,但是在內存中的加載是兩張圖片間隔渲染 如下:


sprite1

sprite2

sprite1

sprite2

sprite1

sprite2

sprite1

sprite2

此種情況并不能滿足Auto-batching的要求


那么我們可以怎么辦呢?


for(int i =0;i<10000;i++)

auto a = sprite::create("sprite1.png");

this->addchild(a);

a->setGlobleZorder(1);


auto b = sprite::create("sprite2.png");

this->addchild(b);

b->setGlobleZorder(1);


}

此時在內存中會出現以下情況:


sprite1

sprite1

sprite1

sprite1

sprite1

sprite1

sprite2

sprite2

sprite2

sprite2

sprite2

sprite2

此時就滿足了Auto-batching的條件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁力市| 南澳县| 峨边| 平顶山市| 丰原市| 永康市| 平南县| 邯郸县| 含山县| 湛江市| 昭苏县| 马公市| 金平| 大石桥市| 克什克腾旗| 财经| 翁牛特旗| 综艺| 乌什县| 海丰县| 新泰市| 芜湖县| 灌云县| 台江县| 杭州市| 西畴县| 鄄城县| 内丘县| 涟水县| 株洲县| 泸西县| 沽源县| 响水县| 谷城县| 湘乡市| 新龙县| 乌拉特中旗| 泸溪县| 吉安市| 肇州县| 扎兰屯市|