溫馨提示×

溫馨提示×

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

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

使用CCSpriteBatchNode實現(xiàn)動畫效果

發(fā)布時間:2020-08-03 11:35:24 來源:網(wǎng)絡 閱讀:3484 作者:杜甲同學 欄目:游戲開發(fā)

使用CCSpriteBatchNode實現(xiàn)動畫效果



//每當屏幕繪制一個紋理的時候,就要經(jīng)過三個工作:準備渲染、渲染圖形和渲染后的清除。這些工作產(chǎn)生了渲染一個紋理所固有的開銷,所以要讓硬件知道需要渲染的這一組精靈或動作幀,使用的是同一個紋理。這樣,圖形硬件就會為這組精靈只進行一次準備、渲染、和清除工作了。使用CCSpriteBatchNode就可以做到這一點。

//CCSpriteBatchNode的工作原理如下:

//1、創(chuàng)建一個CCSpriteBatchNode對象,通過傳遞一個包含所有精靈圖片的紋理圖冊的名字作為參數(shù),并把它加入到當前場景中。

//2、接下來,從紋理圖冊中創(chuàng)建的任何精靈,應該把它當作CCSpriteBatchNode的一個孩子加進去。只要精靈包含在紋理圖冊中,那么就沒問題,否則會出錯。

//3CCSpriteBatchNode可以智能地遍歷它所有孩子結點,并通過一次渲染工作來渲染這些孩子,而不是每個精靈都進行一次渲染,這樣渲染速度就會更快了



我們在boolHelloWorld::init()添加如下代碼:

if ( !CCLayer::init() )
    {
        return false;
    }
                       
                       
                       
    CCAnimation* animation = CCAnimation::create();
                       
                       
    CCSpriteBatchNode* node = CCSpriteBatchNode::create("grossini.png");
    this->addChild(node);
                       
    CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("grossini.plist");
                       
    for (int i = 1; i < 15; i++)
    {
        CCString* str = CCString::createWithFormat("grossini_dance_%02d.png",i);
        const char* ch = str->getCString();
        CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
        CCSpriteFrame* frame = cache->spriteFrameByName(ch);
        animation->addSpriteFrame(frame);
    }
                       
    animation->setDelayPerUnit(0.3f);
    CCAnimate* animate = CCAnimate::create(animation);
    CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
                       
    CCSprite* sprite = CCSprite::createWithSpriteFrame(cache->spriteFrameByName("grossini_dance_01.png"));
    sprite->setPosition(ccp(100, 100));
                       
    node->addChild(sprite);
                       
    sprite->runAction(CCRepeatForever::create(animate));


代碼下載例子:Hi,推薦文件給你 "動畫例子4.zip" http://vdisk.weibo.com/s/Hw4G7

http://pan.baidu.com/share/link?shareid=260459325&uk=3189484501





向AI問一下細節(jié)

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

AI