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

溫馨提示×

溫馨提示×

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

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

cocos2d-x學習筆記(二)序列幀動畫實現的幾種方法

發布時間:2020-07-25 14:21:14 來源:網絡 閱讀:3104 作者:wty530 欄目:游戲開發

一、cocos2d-x幫助文檔中關于動畫幀動畫的實現有兩種方法:

  • 手動添加序列幀到Animation類

  • 使用文件初始化Animation類

這里我就不列出來,大家可以看下官方文檔

http://www.cocos.com/doc/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/frame-animation/zh.md


二、有些時候我們需要從plist取出指定的幾個圖片(而不是全部)來播放動畫,接下來我們主要介紹下這種方法:


1、首先我們先通過使用SpriteFrameCache來創建精靈幀緩存

    

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("test.plist");


2、假設test.plist中有machine_1.pngmachine_2.png這兩個精靈圖片,通過createWithSpriteFrameName可以獲取精靈:


auto machine = Sprite::createWithSpriteFrameName("machine_1.png");

3、創建一個Vector類型的數據用來存放所需要的精靈幀,通過for循環添加動畫精靈


Vector<SpriteFrame*>frameVector;
for(inti=1;i<3;i++)
{
    char pngName[100] = {0};
    sprintf(pngName, "machine_%d.png",i);
    frameVector.pushBack(SpriteFrameCache::getInstance()->getSpriteFrameByName(pngName));
}

4、設置動畫參數并播放序列幀動畫


//第二個參數是動畫執行的持續時間
auto animation = Animation::createWithSpriteFrames(frameVector,0.2);
//設置動畫執行完時是否回到原始狀態
animation->setRestoreOriginalFrame(false);
//設置動畫反復執行的次數
animation->setLoops(10000);
//用動畫緩存初始化Animation實例,用Animate實例來播放序列幀動畫
auto action = Animate::create(animation);
machine->runAction(Sequence::create(action,action->reverse(), NULL));

5、完整的代碼如下:

    

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("test.plist");
//創建精靈machine
auto machine = Sprite::createWithSpriteFrameName("machine_1.png");
machine->setPosition(Vec2(visible.width/2,visible.height/2));
this->addChild(machine,1);
//創建一個Vector類型的數據用來存放所需要的精靈幀
Vector<SpriteFrame*> frameVector;
for( int i=1;i<3;i++)
{
char pngName[100] = {0};
sprintf(pngName, "machine_%d.png", i);
SpriteFrame* pngNameSF = SpriteFrameCache::getInstance()->getSpriteFrameByName(pngName);
frameVector.pushBack(pngNameSF);
}
//第二個參數是動畫執行的持續時間
auto animation = Animation::createWithSpriteFrames(frameVector, 0.2);
//設置動畫執行完時是否回到原始狀態
animation->setRestoreOriginalFrame(false);
//設置動畫反復執行的次數
animation->setLoops(10000);
//用動畫緩存初始化Animation實例,用Animate實例來播放序列幀動畫
auto action = Animate::create(animation);
machine->runAction(Sequence::create(action, action->reverse(), NULL));


向AI問一下細節

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

AI

陆川县| 江北区| 隆尧县| 开化县| 屯昌县| 洛川县| 津市市| 大丰市| 四平市| 驻马店市| 静乐县| 伊吾县| 南皮县| 阿坝县| 福清市| 平凉市| 和林格尔县| 泸西县| 南阳市| 河源市| 米泉市| 双鸭山市| 江油市| 堆龙德庆县| 洞口县| 南丹县| 安龙县| 金秀| 永昌县| 革吉县| 黔西县| 贵溪市| 原平市| 环江| 岳阳县| 望都县| 崇州市| 新巴尔虎左旗| 乐安县| 买车| 永嘉县|