如果你正在使用CocosBuilder或者是其他基于CocosBuilder源码改装而成的工具为你的游戏搭建场景或者UI,那你一定要看看这篇文章:)
 
你是否已经厌倦了无聊的手工publish操作?反正我是受够了。对于我这个懒人,最好的方式莫过于有一个命令行工具,可以让我把publish各种ccb的工作串到我的workflow里面。有了这个想法后,我开始上网搜索,没错,我还真找到了一点线索,在几个人的博客和官方论坛的帖子中,有人提到了这个工具,不过郁闷的是竟然没人肯告诉这个工具究竟藏在什么地方。反正打好包的app里面是没有,于是我下载了CocosBuilder的源码(github地址),想着就算找不到俺自己不能照着原理写一个吗?不过最终发现作者还是大发慈悲的没忍心让我动手,原来在源码的工程中,作者已经写好了这个工具,只是,需要你自己build出来=。=好吧,作者是有多懒…
 
如下图,有一个叫ccbpublish的target,选择这个target,我们把它build出来。铛铛,一道金光,工具入手:)记得在使用之前可能需要chmod一下。
 
接着我们研究一下它的用法,在命令行中带--help参数执行,可以看到如下提示:
这里我们只需要注意-o这个参数就可以了,其他的有兴趣你可以自己研究(我说过我很懒的=。=)
实际上用法是:
ccbpublish -o 输出文件的路径 输入ccb的ccb文件
比如说,我们的ccb文件在目录home/Xin/ccb1.ccb,要输出到home/Xin/ccbis/ccb1.ccbi,那么我们就只需要:
ccbpublish -o home/Xin/ccbis/ccb1.ccbi home/Xin/ccb1.ccb 

OK,知道了用法,我来讲一下实际使用的一个例子和一个写好的bash脚本。

还是使用我们在这系列第一篇里面用到的那个目录,希望你们还记得,不知道的可以进这里,我们需要在上一节那个目录的基础上添加两个目录,一个是ccb,里面存放我们游戏的ccb工程(在这里我们假设我们游戏只使用一个ccb工程,并且这个工程是使用CocosBuilder3.0alpha创建的),另外一个在res目录下的ccbis,里面存放我们生成的ccbi。创建好后应该是下面图这样子的目录结构:

ccb的目录:

为了清楚,我特意用不同的颜色把需要注意的目录都标出来了。

好了,我们说一下我们脚本工具的思路。脚本工具放在tools这个目录中,它运行之后会去ccb这里目录中寻找所有的ccb文件(由CocosBuilder3.0alpha创建的工程ccb会存放到一个如图Resources子目录之下),然后将他们一一publish到res/ccbis这个目录中。下面是这个脚本:
 #! /bin/sh

 CURRENT_PATH=`dirname $`
SCRIPT_PATH=$CURRENT_PATH
RESOURCE_PATH=$CURRENT_PATH/../ccb
CCB_PATH=$CURRENT_PATH/../ccb/Resources
TEMP_OUT=$CURRENT_PATH/out
OUT=$CURRENT_PATH/../res/ccbis if [ -d $OUT ];then
echo "Clean old files..."
rm -rf $OUT/*.ccbi
else
echo "Not found out folder and create it!"
mkdir $OUT
fi echo "Publish .ccbis files..." mkdir $TEMP_OUT for i in $CCB_PATH/*
do
fileName=`basename $i`
if [[ $fileName =~ [a-zA-Z]+\.ccb ]]
then
echo "--- publish >>$fileName<<"
fileNameWithoutExt=${fileName%\.ccb}
$CURRENT_PATH/ccbpublish -o $TEMP_OUT/$fileNameWithoutExt".ccbi" $i
fi
done echo "Move .ccbis files..." mv $TEMP_OUT/*.ccbi $OUT/ rm -rf $TEMP_OUT echo "All done!"

都是比较简单的bash脚本,测试的话只需要把上面的脚本拷贝下来,存放到tools文件夹中,然后记得chmod和把后缀改成.command的,这样就可以双击运行刷新了。

有了这个东西之后,就可以完全不需要手工的去GUI里面publish所有的ccb文件了,是不是觉得很爽?

好了,第二篇就这样,有问题留言:)

版权所有,转载请注明出处:)

[原创]使用命令行工具提升cocos2d-x开发效率(二)之CocosBuilder篇的更多相关文章

  1. [原创]使用命令行工具提升cocos2d-x开发效率(一)之TexturePacker篇

    TexturePacker是一个常用的制作sprite sheet的工具,它提供了很多实用的功能. 一般我们制作sprite sheet都是使用他的gui版本,纯手工操作,就像下面这张图示的一样. 刚 ...

  2. 使用命令行工具提升cocos2d-x开发效率 之CocosBuilder篇

    http://www.cnblogs.com/flyFreeZn/p/3617983.html 假设你正在使用CocosBuilder或者是其它基于CocosBuilder源代码改装而成的工具为你的游 ...

  3. [原创]用命令行工具删除TFS2010服务器上的工作区信息

    下面的示例显示有关所有计算机上的所有用户已在地址 http://myserver:8080/tfs/DefaultCollection 上的以下团队项目集合中创建的所有工作区的列表. c:\proje ...

  4. Wireshark命令行工具tshark

    Wireshark命令行工具tshark 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部 ...

  5. 如何用node编写命令行工具,附上一个ginit示例,并推荐好用的命令行工具

    原文 手把手教你写一个 Node.js CLI 强大的 Node.js 除了能写传统的 Web 应用,其实还有更广泛的用途.微服务.REST API.各种工具……甚至还能开发物联网和桌面应用.Java ...

  6. 命令行工具--LLDP

    目录 命令行工具--LLDP 一.场景引入 二.什么是LLDP? 三.在CentOS上安装LLDP 四.命令详解 五.脚本 命令行工具--LLDP 一.场景引入 有的时候,我们需要知道服务器上联交换机 ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...

  8. JDK的命令行工具

    Jcmd:综合工具 jcmd -l  列出当前运行的所有虚拟机 参数-l表示列出所有java虚拟机,针对每一个虚拟机,可以使用help命令列出该虚拟机支持的所有命令 jcmd [pid] help j ...

  9. 显示器 Linux 性能 18 (一个命令行工具传递)

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并执行是多么的不easy.基于此原因. ...

随机推荐

  1. 微软Hololens设备 浅分析

    微软Hololens的定位是一款MR 设备(Mixed reality).MR与AR的不同我认为是MR能够将真实环境的场景信息与虚拟对象进行完美的融合,它是基于SLAM(SimultaneousLoc ...

  2. PHP 7 值得期待的新特性(上)

    这是我们期待已久的 PHP 7 系列文章的第一篇. 或许你已经知道了,我在 PHP 5.0.0 时间轴 提的 RFC (Request For Comments)通过了, PHP 7 成为 PHP 下 ...

  3. SDUT 2523 OOXX

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2523 思路 :就是先统计一下方阵中1多少2多少 ...

  4. redis 参考

    http://redis.readthedocs.org/en/2.4/index.html

  5. HTTP/1.1 Range和Content-Range

    http://www.cnblogs.com/bayonetxxx/archive/2011/03/19/1989162.html 假设你要开发一个多线程下载工具,你会自然的想到把文件分割成多个部分, ...

  6. ANDROID_MARS学习笔记_S01_007Linear_layout嵌套与layout_weight的设置

    一.介绍 二.1.linear_layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...

  7. 好看的游戏soul calibur

    http://soulcalibur.fr/index.php?wiki/sophitia/ http://astuce-soluce.playfrance.com/index.php/Soul_Ca ...

  8. Git教程之使用GitHub

    我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的.其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人 ...

  9. CodeForces114E——Double Happiness(素数二次筛选)

    Double Happiness On the math lesson a teacher asked each pupil to come up with his own lucky numbers ...

  10. 利用CodeIgniter中的Email类发邮件

    CodeIgniter拥有功能强大的Email类.以下为利用其发送邮件的代码. 关于CI的Email类的详情请参考:http://codeigniter.org.cn/user_guide/libra ...