用 Atom 打造您的 cocos2d-x Lua 开发环境

用 cocos2d-x 一年有余了,当初的初学用户已经成为了 cocos2d-x 代码的贡献者。确实 cocos2d-x 有很多问题,需要用户不仅仅作为用户;还要提出解决方案、提交 pull request 来为 cocos2d-x 作出贡献才能让 cocos2d-x 越来越好。

相应的,作为 cocos2d-x Lua 用户,在编辑器周边,在这一年多的时光里面,我编写了三个 Atom 插件:

这里就介绍一下这几个插件的安装和使用。不过首先我们先安装 Atom

官网下载 墙内下载

linter-luacheck 进行错误检查

Lua 是一门脚本语言,有许多坑。它的变量可以不用声明直接使用,这难免带来错误。比如把局部变量打错一个字幕,他不会报错。这就需要有语法检查工具来帮助了。这里介绍如何在 Atom 中安装 [luachcek][] 的插件来进行语法检查:

  1. 安装 Lua:*nix 可以从源码编译,也可以用系统的包管理器,Mac OS X 可以用 brew。Windows 用户有 Lua for Windows (但是我还没有测试过是否可以安装 LuaRocks)。
  2. 安装 LuaRocks
  3. 安装 luacheck 命令行工具: luarocks install luacheck
  4. 好了,终于可以安装 linter 和 linter-luacheck 了: apm install linter linter-luacheck
  5. 配置,Mac OS X 下可能需要配置一下 luahcek 的路径: 以 Mac OS X 为例: Atom -> Preferences... -> Packages -> linter-luacheck -> Settings -> Executable,然后填写你的 luacheck 的绝对路径。
  6. 高级配置,luacheck 有许多配置选项,可以在项目根目录下建立一个 .luacheckrc 进行详细的配置。

.luacheckrc 示例:

std = 'max'
globals = {'cc', 'ccui', 'ccs', 'dump', 'transition', 'class'}
exclude_files = {'src/cocos/**.lua'}
self = false
files['.luacheckrc'].global = false

以后,打开 Lua 文件的时候就可以看到错误检查的提示了。以后就靠你自己保持每个 Lua 文件零警告零错误了。

build-busted 进行单元测试

「什么?单元测试?」 有人可能惊讶的问,「游戏客户端怎么单元测试啊?不都是安装到设备上由测试人员进行测试吗?」

确实可以,不过我说的不是 UI 的测试,我说的是逻辑层的单元测试。把游戏的逻辑、显示和控制分离(比如 MVC)后,就可以对逻辑进行单元测试了。

Lua 单元测试框架选择并不是太多,但是我们任然有非常优雅的 busted 框架,具体用法看官方文档就好了,这里讲下怎么安装环境。

  1. 安装 Lua 和 LuaRocks,前面已经介绍过了,你应该已经会了。
  2. 安装 busted:luarocks install busted.
  3. 编写测试,放在你的 cocos2d-x Lua 项目根目录下的 spec 目录下。每个测试文件以 _spec.lua 结尾。
  4. 安装 build-busted: apm install build build-busted
  5. 配置:和前面的 inter-luacheck 类似,Mac OS X 下可能需要在 Atom 的设置里面 busted 命令的绝对路径。
  6. 在项目根目录下创建一个 .busted 文件,这样 build-busted 就知道你是在用 busted 进行测试了。
  7. 运行测试:Cmd Alt T / Ctrl Alt T / F7 显示编译、运行目标列表,选择 busted

运行结果像这样,还可以定位到错误发生的代码:

build-cocos 编译运行发布 cocos2d-x 项目

build-cocos 插件能让你在 Atom 下完成 cocos2d-x C++, Lua 和 Javascript 项目的编译、运行和发布等任务。更重要的是,对于编译和脚本运行错误都能够捕捉和定位到源代码。再也不用在命令行和代码编辑器中间来回切换了。

让我们先来安装:

  1. 按照文档安装 cocos2d-x 环境。
  2. 安装定制版的 cocos 命令:在到项目根目录:git clone https://github.com/xpol/cocos2d-console frameworks/cocos2d-x/tools/cocos2d-console ,这样 build-cocos 会优先使用项目内的的 cocos 命令。
  3. 安装build-cocosapm install build build-cocos
  4. 运行测试:Cmd Alt T / Ctrl Alt T / F7 显示编译、运行目标列表,选择你要的编译或者运行的目标。

C++编译错误:

Lua 脚本运行错误:

好了,以上就是粗略的介绍,其实 linter-luacheck build-bustedbuild-cocos 都还有许多细节的用法,需要你慢慢去发现。有问题也可以在 github 上提。