一、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.png和machine_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));另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:cocos2d-x學習筆記(二)序列幀動畫實現的幾種方法-創新互聯
鏈接地址:http://m.newbst.com/article10/cepido.html
成都網站建設公司_創新互聯,為您提供微信公眾號、網站導航、移動網站建設、網站改版、營銷型網站建設、虛擬主機
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯