现在的位置: 首页 > 综合 > 正文

cocosBuilder使用总结

2018年05月27日 ⁄ 综合 ⁄ 共 1972字 ⁄ 字号 评论关闭

原创,转载请注明出处!

基本流程

>=-. 准备工作
#. 把一个项目场景相关的,相对独立(别的场景用不到)的碎图,用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的名字。

随时追加,

抱歉!评论已关闭.