最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
【cocos2d編程精粹】SpriteFrame的實現(xiàn)與優(yōu)化-創(chuàng)新互聯(lián)

SpriteFrame 的實現(xiàn)與優(yōu)化

簡介

SpriteFrame 其實是為了優(yōu)化貼圖描畫而存在的。我們知道為了更好的利用圖形繪制 API,我們常常把一些細(xì)小的貼圖合并到一起,然后每次只繪制這張貼圖中需要的那個部分,這個就是 SpriteFrame。

在陽泉等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,陽泉網(wǎng)站建設(shè)費用合理。

SpriteFrameCache 是為了配合 SpriteFrame 而存在的,主要用于載入,管理,緩存 SpriteFrame。   

屬性

先來解釋幾個概念:

  • set 集合 ,一般對應(yīng)一個 plist 的數(shù)據(jù)文件或者數(shù)據(jù)庫中的一組數(shù)據(jù)

  • alias 別名,對應(yīng)了某個 SpriteFrame

  • texture 貼圖,一個 set 一般存在一個貼圖

  • textureName 貼圖名稱,和貼圖一一對應(yīng)(綁定)

  • SpriteFrame 圖片,指貼圖中的一塊區(qū)域

    關(guān)系:

  • set : SpriteFrame 是一對多的關(guān)系

  • SpriteFrame : alias 是一對多的關(guān)系

  • set : texture 是一對一的關(guān)系

SpriteFrame 中有幾個必須的屬性:

  • 貼圖 指定了 圖片 對應(yīng)的 貼圖

  • 集合名稱 圖片對應(yīng)的集合的名稱

  • 旋轉(zhuǎn) 表示了 圖片 是否在 貼圖 中旋轉(zhuǎn)

  • 貼圖區(qū)域 表示 圖片 在 貼圖 中的區(qū)域坐標(biāo)

  • 原始尺寸 表示了 圖片 的大小

  • 圖片偏移 表示了實際的 貼圖區(qū)域 相對于 圖片 的偏移坐標(biāo)

    注意 當(dāng) 貼圖 中存在四周透明的情況時,為了優(yōu)化大小,貼圖 會去掉這些四周的透明像素,從而使 貼圖區(qū)域 和原始尺寸 可能存在不一致的情況。

實現(xiàn)

SpriteFrame 的實現(xiàn)較為簡單,暫且略過。

Cocos2dx 中的 SpriteFrameCache 實現(xiàn)經(jīng)歷過幾次重大的變化:

  • 1.0.1 使用 CCDictionary 來作為存儲容器,支持從外部文件讀入

  • 2.0rc2 增加了載入的文件列表

  • 3.0 使用了 map 代替 CCDictionary 來作為存儲容器

SpriteFrameCache

SpriteFrameCache 實際上就是 spriteFrame 的管理器。主要實現(xiàn)了以下的功能:

  • 載入,從 plist 載入 spriteFrame

  • 管理,對所有的 SpriteFrame 進(jìn)行統(tǒng)一的管理,可以移出不再使用的

優(yōu)化

優(yōu)化大致包括了以后的部分:

代碼風(fēng)格調(diào)整

具體可以參考 項目的風(fēng)格指南

SpriteFrame 內(nèi)部計算優(yōu)化 (未完成)

SpriteFrameCache singleton 模式替換

使用了 kzlib::TSingleton

SpriteFrameCache 內(nèi)部使用容器替換,原則就是盡量使用 STL 容器

  • set 替換成 unordered_set

  • CCDictionary 替換成 unordered_map

因為 unordered 系列容器內(nèi)部使用了 hash 值,因為比字符串更加有效率。又是 STL 容器,使用方便,穩(wěn)定高效。

SpriteFrameCache 內(nèi)部邏輯調(diào)整

  • 在 SpriteFrame 內(nèi)部增加了 setName ,優(yōu)化了 SpriteFrameCache 對于 set 的管理

  • 優(yōu)化了 set 的載入和釋放

SpriteFrameCache 支持貼圖創(chuàng)建

支持了從貼圖到 SpriteFrame 的轉(zhuǎn)換,保證了使用的統(tǒng)一

SpriteFrameCache 支持更多的數(shù)據(jù)格式 (未完成)

SpriteFrameCache 支持貼圖的后載入 (未完成)

代碼

  • spriteframe.h

  • spriteframe.cpp

  • spriteframecache.h

  • spriteframecache.cpp

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:【cocos2d編程精粹】SpriteFrame的實現(xiàn)與優(yōu)化-創(chuàng)新互聯(lián)
本文路徑:http://fisionsoft.com.cn/article/dhcpoh.html