Cocos2d-js 開發記錄:骨骼動畫載入


不得不說cocos2d-js的文檔實在是少,骨骼動畫的載入和C++版本的好像還有些不同不能直接依樣畫葫蘆。

一個由cocos studio編輯生成的骨骼動畫一般會包含如下幾個文件:

  • .ExportJson文件
  • .plist文件
  • .png文件

ExportJson文件包含了骨骼動畫的動作和所要用到的資源的名稱,plist文件負責切分png圖片的各個區域形成邏輯上的一張張圖片,其實是把要用的圖片打包的單個png文件中,然后把原來的文件名稱和區域信息記錄到plist中。ExportJson中包含了對plist文件的名稱的描述體現在其config_file_path字段。那么照理來說導入骨骼動畫只要顯式加載一個ExportJson文件就行了剩下的讓引擎去做吧?可惜不是這樣,如果不在resource中指定骨骼動畫配套的plist那么在加載骨骼動畫的時候就會報錯。下面記錄一個骨骼動畫使用的過程:

0. 修改項目配置文件添加extension模塊

"modules" : ["cocos2d", "extensions"],

使用cocos studio工具生成的資源大部分都要把extensions模塊也加入到項目中來,這些模塊處於ccs命名空間中

1. 向resource.js文件添加骨骼動畫資源描述

    wolf_animation: "res/monster/wolf/wolf.ExportJson",
    wolf_plist: "res/monster/wolf/wolf0.plist"

注意ExportJson和對應plist文件都要在這里寫出

2. 加載骨骼動畫資源

        var size = cc.winSize;
        var scale = 0.5;

        ccs.armatureDataManager.addArmatureFileInfo(res.wolf_animation);

        var wolfAnimation = new ccs.Armature("wolf");
        wolfAnimation.setScale(scale);
        wolfAnimation.setPosition(size.width / 2 + 150, size.height / 2);
        wolfAnimation.animation.play("Animation1");
        this.addChild(wolfAnimation);

這里addArmatureFileInfo是一個同步過程有對應的異步版本,要用骨骼動畫前需要執行一次這個方法,它會讀入骨骼動畫數據並把要用到的資源緩存起來。這樣執行多次

new ccs.Armature("wolf");

其實不要再執行addArmatureFileInfo了。new ccs.Armature()中的參數要和骨骼動畫項目中ExportJson指定的名稱一致即其armature_data.name

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM