cocosBuilder使用總結


原創,轉載請註明出處!



基本流程

>=-. 準備工作
#. 把一個項目場景相關的,相對獨立(別的場景用不到)的碎圖,用TexturePack拼接成大的png圖片文件及plist數據字處理文件
#. 多場景公用的圖,可以以單圖的形式存在。但上傳資源的時候,注意他們只能出現一次


>=-. 新建工程
        #. 刪除新工程時,自帶着ccb文件,及相關資源文件, (在Finder下刪除 cocosBuilder中自己就沒有了, cocosBuilder中不能刪除,這點還有點麻煩)


>=-. 新建ccb
        #. 把需要的資源放到工程目錄下,新建自己的ccb文件
        #. 分辨率選擇,標準Layer採用960*640的分辨率,新建ccb時,拖動設定


>=-.方便程序工作
        1.對於複雜的Layer,需要綁定一個程序的類,這時需要指定customclass, 這個將配合下面的程序工具使用

        2.一些CCObject,需要運行時,根據邏輯換成指定的圖片或材質。對於這些CCObject,要給定名字(位於customclass下面),類型要指定,"Doc root var",這一點很重要,否則程序會報錯。

3.對於需要交互的層,我的做法是,新開一個和CCB對應的類,它繼承自CCLayer,把CCB對象加到這個類對象上,並提供給其訪問CCB對象的方法。所有邏輯都在這個類裏面寫。做到不改動CCB程序工具生成生成的代碼,以方便應付經常改動CCB的需求。



>=-. 發佈時,資源引用相對路徑設置
Pubulish Setting 中 "Flatten paths when publishing", 這一項決定引用資源路徑是絕對路徑,還是相對路徑。
所以要勾選它,
如果不勾選,相應的Xcode的文件夾藍色的才行
官方解釋:
So when the resources are added in Xcode, they need to be added as yellow folders (which is usually the default option). If you choose not to flatten the paths you should add your resources as blue folders in Xcode.


>=-. ccbi的多分辨率的命名
        整個工程可能用到多套ccbi文件,所以給ccbi的命名統一加,能標示分辨率的後綴比較好
        LogoinBgLayer_960_640.ccbi
        LoginBggLayer_1024_768.ccbi


技巧
1. 增加結點 
默認的新結點是加到和被選中結束,同一層上。 按住shift鍵增加的話,就加成選中結點的孩子。
By default the node is added as a sibling to the selected node or, if no node is selected, as a child to the root node. By holding down the shift key when adding an object it will instead be added as a child to the selected node.
2.旋轉
按住option鍵,可以旋轉結點


3. 簡單動畫編輯
   指定動畫對象,先選擇timeLine, 增加Position,Ratation等類型的關鍵幀。


4. 動做序列幀
plist中的第一幀拖上去, 選中其它幀右鍵->“create Frames From Selection”
如果想要改變幀間隔,全選(比較麻煩)後,Animation->Stretch Selection Frames
通過改變 No chained time line, 可以指定一個time line 完事後, 要不要接另一個time line
每個time line 可以單獨設置在加載完後, 是不是自動播放。


5. 輔助線
和ps類似從左邊或下邊,可以直接拉出輔助線,
按住command鍵,可以拖動或移除輔助線




程序:
1. 工具
做了個工具(Mac版本),用於將場景和程序有交互的對象,自動生成相關的代碼文件,具體操作見工程中的readme.txt
ccb -> (.h .cpp)
工具地址
http://download.csdn.net/detail/rct1985/5803033

http://pan.baidu.com/share/link?shareid=1829029709&uk=1308921510


2. 代碼對動畫的控制
CCBAnimationManager* l_animationManager = m_ccbReader->getAnimationManager();
    l_animationManager->runAnimationsForSequenceNamed("boyAnimation");

    其中“boyAnimation”指的是一個timeLine的名字。


隨時追加,

發佈了46 篇原創文章 · 獲贊 15 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章