http://www.cnblogs.com/flyFreeZn/p/3617983.html

假设你正在使用CocosBuilder或者是其它基于CocosBuilder源代码改装而成的工具为你的游戏搭建场景或者UI,那你一定要看看这篇文章:)
你是否已经厌倦了无聊的手工publish操作?反正我是受够了。

对于我这个懒人,最好的方式莫过于有一个命令行工具,能够让我把publish各种ccb的工作串到我的workflow里面。有了这个想法后,我開始上网搜索。没错,我还真找到了一点线索。在几个人的博客和官方论坛的帖子中。有人提到了这个工具,只是郁闷的是居然没人肯告诉这个工具到底藏在什么地方。反正打好包的app里面是没有,于是我下载了CocosBuilder的源代码(github地址)。想着就算找不到俺自己不能照着原理写一个吗?只是终于发现作者还是大发慈悲的没忍心让我动手,原来在源代码的project中,作者已经写好了这个工具。仅仅是。须要你自己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,里面存放我们游戏的ccbproject(在这里我们如果我们游戏仅仅使用一个ccbproject。而且这个project是使用CocosBuilder3.0alpha创建的),另外一个在res文件夹下的ccbis,里面存放我们生成的ccbi。创建好后应该是以下图这样子的文件夹结构:

ccb的文件夹:

为了清楚,我特意用不同的颜色把须要注意的文件夹都标出来了。

好了。我们说一下我们脚本工具的思路。脚本工具放在tools这个文件夹中,它执行之后会去ccb这里文件夹中寻找全部的ccb文件(由CocosBuilder3.0alpha创建的projectccb会存放到一个如图Resources子文件夹之下)。然后将他们一一publish到res/ccbis这个文件夹中。以下是这个脚本:
 1 #! /bin/sh
2
3 CURRENT_PATH=`dirname $0`
4 SCRIPT_PATH=$CURRENT_PATH
5 RESOURCE_PATH=$CURRENT_PATH/../ccb
6 CCB_PATH=$CURRENT_PATH/../ccb/Resources
7 TEMP_OUT=$CURRENT_PATH/out
8 OUT=$CURRENT_PATH/../res/ccbis
9
10 if [ -d $OUT ];then
11 echo "Clean old files..."
12 rm -rf $OUT/*.ccbi
13 else
14 echo "Not found out folder and create it!"
15 mkdir $OUT
16 fi
17
18 echo "Publish .ccbis files..."
19
20 mkdir $TEMP_OUT
21
22 for i in $CCB_PATH/*
23 do
24 fileName=`basename $i`
25 if [[ $fileName =~ [a-zA-Z]+\.ccb ]]
26 then
27 echo "--- publish >>$fileName<<"
28 fileNameWithoutExt=${fileName%\.ccb}
29 $CURRENT_PATH/ccbpublish -o $TEMP_OUT/$fileNameWithoutExt".ccbi" $i
30 fi
31 done
32
33 echo "Move .ccbis files..."
34
35 mv $TEMP_OUT/*.ccbi $OUT/
36
37 rm -rf $TEMP_OUT
38
39 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篇

    如果你正在使用CocosBuilder或者是其他基于CocosBuilder源码改装而成的工具为你的游戏搭建场景或者UI,那你一定要看看这篇文章:)   你是否已经厌倦了无聊的手工publish操作? ...

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

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

  4. Apache Commons CLI 开发命令行工具示例

    概念说明Apache Commons CLI 简介 虽然各种人机交互技术飞速发展,但最传统的命令行模式依然被广泛应用于各个领域:从编译代码到系统管理,命令行因其简洁高效而备受宠爱.各种工具和系统都 提 ...

  5. Go使用flag包开发命令行工具

    flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, ...

  6. Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...

  7. 用PHP开发命令行工具

    介绍 用过laravel开发过项目的都应该用过artisan,通过artisan我们可以在命令行中创建控制器类,Eloquent类等,今天我们将通过php来开发命令行工具 开发环境与工具 使用vagr ...

  8. 【Nodejs】326- 从零开发一个node命令行工具

    本文由 IMWeb 社区授权转载自腾讯内部 KM 论坛.点击阅读原文查看 IMWeb 社区更多精彩文章. 什么是命令行工具? 命令行工具(Cmmand Line Interface)简称cli,顾名思 ...

  9. 来认识一下venus-init——一个让你仅需一个命令开始Java开发的命令行工具

    源代码地址: Github仓库地址 个人网站:个人网站地址 前言 不知道你是否有过这样的经历.不管你是什么岗位,前端也好,后端也罢,想去了解一下Java开发到底是什么样的,它是不是真的跟传说中的一样. ...

随机推荐

  1. svn搭建脚本

    1.yum install subversion 2.输入rpm -ql subversion查看安装位置 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn ...

  2. transformer模型解读

    最近在关注谷歌发布关于BERT模型,它是以Transformer的双向编码器表示.顺便回顾了<Attention is all you need>这篇文章主要讲解Transformer编码 ...

  3. linux 服务器 php vue项目部署流程总结

    服务器配置 购买阿里云服务器 (选择ubuntu 16系统 / 内存2G以上) 安全策略, 入规则: 添加端口 20,21,22, 80, 443, 3306, 8080, 安装宝塔 wget -O ...

  4. tornado框架基础06-SQLAlchemy连接数据库

    01 ORM 在服务器后台,数据是要存储在数据库的,但是如果项目在开发和部署的时候,是使用的不同的数据库,该怎么办呢?是不是需要把所有的 SQL 语句都再重新写一遍呢? 和数据库相关,不同的数据库需要 ...

  5. POJ 2553 The Bottom of a Graph(强连通分量的出度)

    题意: 求出图中所有汇点 定义:点v是汇点须满足 --- 对图中任意点u,若v可以到达u则必有u到v的路径:若v不可以到达u,则u到v的路径可有可无. 模板:http://www.cnblogs.co ...

  6. Android开发——查询/卸载手机里的应用、应用图标创建

    1. 获取手机里的所有已安装的应用 以前写过一个SoftProviderUtil工具类,拿出来分享一个.通过PackageManager,不仅可以获取PackageName,判断此进程是否为系统应用, ...

  7. 【Codeforces 140A】New Year Table

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 算出来每个盘子要占用多少角度. 然后乘n看看是不是小于等于2π就好 (精度最好定在1e-7) [代码] #include <bits/s ...

  8. selenium 3+python3.6+firefox的windows详细环境搭建以及小demo

    最近也是学习了下selenium和python,就记录了下在自己工作机上环境的搭建过程以及小demo 1,安装python3.6.1 我是去官网直接下载当前最新版的python3.6.1 官网网址为h ...

  9. oracle 恢复中的switch datafile all是什么意思

    使用rman进行恢复时,如果使用了set name修改文件路径,那么恢复后,控制文件里面的信息是没有修改该的,如果要同步控制文件的信息那么就需要使用 switch datafile allall这个可 ...

  10. captcha库报错"OSError: cannot open resource"

    问题描述 在win平台上python虚拟环境下使用captcha库生成验证码报错OSError: cannot open resource 代码 from captcha.image import I ...