如果你正在使用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. Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定

    一放假就高产似母猪了. 00.混乱的前端界 Angular1.x确实是个学习成本很高的框架,刚开始实习那会儿,前端啥也不懂,工头说用Angular,我们这群小弟也只能硬着头皮学.在这之前,前端的东西大 ...

  2. Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesian methods?

    Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesia ...

  3. ural 1233

    可以推出规律  每一个数第一次出现的位置 和 n*10后出现的位置  要特殊考虑 是10的倍数的情况(10,100,1000, .......) 它的位置是不会改变的 #include<cstd ...

  4. codeforces #309 div1 D

    求最小值最大显然是要二分 二分之后转换成了判定性问题 我们考虑哪些点一定不能选 显然是将所有可选点选中之后依然不满足条件的点不能选 那么我们不妨维护一个堆,每次取出堆顶看看是否满足条件 不满足条件就p ...

  5. spring transactionmanager

    Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSo ...

  6. 191. Number of 1 Bits

    题目: Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also ...

  7. 通过dbms_xplan.display_cursor识别低效的执行计划

    dbms_xplan.display_cursor定义: function display_cursor(sql_id           varchar2 default  null,        ...

  8. Rabbitmq中rabbitmqctl的常用命令

    学习rabbitmq,原理之后第一个要掌握的就是rabbitmqctl这个命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,当然还有HTTP API和UI两种管理手段. ...

  9. JNDI和在tomcat中配置DBCP连接池 元数据的使用 DBUtils框架的使用 多表操作

    1 JNDI和在tomcat中配置DBCP连接池 JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.namin ...

  10. Android开发之R文件丢失

    在进行android开发的过程中,不知道怎么回事,代码中出现R代码有红色波浪线了,于是进行了clean,结果还是有红色波浪线,然后就重启了eclipse,重启以后还是这个样子,随后发现工程的R文件丢失 ...