91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Cocos2d-x 精靈圖片預加載中不會出現重復加載問題

發布時間:2020-06-30 14:49:33 來源:網絡 閱讀:636 作者:googlingman 欄目:游戲開發

    為了應對大量精靈圖片的加載問題,cocos2d-x提供了精靈數據的異步預加載機制,這是要是借助于CCTextureCache::addImageAsync函數來實現的。


    那么,當使用上述函數多次加載同一個精靈圖片文件時,是否會出現加載多次呢?不會的。

    讓我們來分析一下上述函數的關鍵部分代碼:

void CCTextureCache::addImageAsync(const char *path, CCObject *target, SEL_CallFuncO selector)
{
#ifdef EMSCRIPTEN
    CCLOGWARN("Cannot load p_w_picpath %s asynchronously in Emscripten builds.", path);
    return;
#endif // EMSCRIPTEN
    CCAssert(path != NULL, "TextureCache: filep_w_picpath MUST not be NULL");    
    CCTexture2D *texture = NULL;
    // optimization
    std::string pathKey = path;
    pathKey = CCFileUtils::sharedFileUtils()->fullPathForFilename(pathKey.c_str());
    texture = (CCTexture2D*)m_pTextures->objectForKey(pathKey.c_str());
    std::string fullpath = pathKey;
    if (texture != NULL)
    {
        if (target && selector)
        {
            (target->*selector)(texture);
        }
        
        return;
    }

注意上面代碼中的這一句:

texture = (CCTexture2D*)m_pTextures->objectForKey(pathKey.c_str());

框架使用了字典機制,通過鍵-值對方式進行紋理數據匹配,而上面這個函數中的字符串正對應于我們關注的精靈文件名,而文件名是不變的(也就是說,當我們使用addImageAsync函數多次試圖加載同一個精靈圖片文件時),所以,不會出現多次試圖加載同一個精靈圖片文件而導致系統重復加載的問題。


向AI問一下細節

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

AI

乐清市| 阿城市| 巴彦淖尔市| 吉安县| 类乌齐县| 南岸区| 靖江市| 水城县| 闸北区| 萨嘎县| 精河县| 兰溪市| 福建省| 靖西县| 永宁县| 贵德县| 马公市| 阳原县| 大石桥市| 韶山市| 汤阴县| 新邵县| 屯昌县| 谢通门县| 苍溪县| 永善县| 通许县| 沾化县| 丹阳市| 偏关县| 浪卡子县| 老河口市| 温州市| 梁河县| 长丰县| 克拉玛依市| 遵化市| 衡南县| 天水市| 衡阳市| 盈江县|