Cocos2dx BabeLua3.0.1.0 Windows下lua环境配置
@author 路人
@time 2015.08.24
@updateTime none
@reference http://www.cocoachina.com/bbs/read.php?tid-205043-page-1.html
@reference http://blog.csdn.net/babestudio/article/details/27228865
这篇文章用于VS 2013里cocos2dx_lua环境的搭建,包含VS里BaBeLua插件的安装和使用.
环境:
win7 64位
VS 2013
BabeLua 3.0.1.0
cocos2dx 3.4
安装vs和下载插件
首先是安装VS 2013,到百度网盘下载BabeLua插件,双击BabeLua插件,即可安装运行.
然后重启VS,如果在工具栏上看到了LUA这一栏,则表示成功安装.如果重启VS时,提示安装失败,请尝试重新安装.
新建Lua项目
打开一个cocos2dx_lua win32 项目,解决方案在自己项目的中 frameworks\runtime-src\proj.win32目录中.
要配置Lua插件,要先运行当前项目,产生一个可执行程序,作为宿主程序.下面开始介绍如果配置和使用BabeLua插件.
提示:如果运行cocos2dx 3.4示例项目黑屏.请把下面代码加到AppDelegate 中的AppDelegate::applicationDidFinishLaunching()方法.
string strPath = CCFileUtils::getInstance()->getWritablePath();
vector<string> vtPath = CCFileUtils::getInstance()->getSearchPaths();
vtPath.push_back(strPath + "res/");
vtPath.push_back(strPath + "src/");
CCFileUtils::getInstance()->setSearchPaths(vtPath);
我用的BabeLua插件版本是3.0.1.0,相对于网络上介绍的2.1.4.0版本,使用更加简洁,界面稍有不同之处,功能是一样的.
选择工具栏LUA中的New Lua Project,会弹出下面的提示框,用于新建Lua项目.
上图分别设置:
Lua scripts folder:
Lua文件目录,该目录下的所有Lua文件将在“Folder Explorer”中列出。
Lua exe path :
调试时启动的exe文件路径,即自己运行项目产生的exe路径。
Working path
启动“Lua exe”时,此参数作为启动进程的working directory参数。这栏会在你填写Lua exe path时,自动填充成Lua exe path的上级目录.需要手动设置成项目的根目录,比如我的是E:\workspace\TestLua,才能进行断点调试.
Command line
启动调试时传递给“Lua exe”的命令行参数,不用填.
但是要在入口main.lua中加入package.path = package.path .. “;src/?.lua”,才能进行断点调试代码.Setting name
本套参数名称。2.1.4设置多套参数名,但是3.0.1.0只能设置一个。
点击ok后,会自动新建一个Lua工程.
BabeLua的基本使用
在Lua项目里可以对Lua脚本进行编辑;点击右键,有添加新建项用于添加Lua文件,也有删除菜单,和操作普通项目没有区别.
Lua语法高亮、语法检查、自动补全效果如下图.你选择一个变量后,相同名字的变量会语法高亮.当你打出cc.时,会进行代码提醒.右括号和冒号的自动补充,目前没有支持.
- 代码提示的快捷键是ctrl+j,F12转到文件定义
- Ctrl + K,Ctrl + D:格式化当前文件
添加cocos2dx自动补全词库.
选择下载需要的cocos2dx词库文件,放在【我的文档】【BabeLua】【Completion】目录下,重新启动VS即可。写cocos2dx 代码时,会进行智能提示.
快速搜索关键字.按住Ctrl键同时双击要查找的关键字,编辑器会在当前Lua文件中进行搜索。
按住Alt键同时双击要查找的关键字,编辑器会在所有Lua文件中进行搜索。也可以通过vs 菜单【Lua】【Views】【Search Result】打开“Search Result”窗口,输入要查找的关键字,会在全部Lua文件中进行搜索.
BabeLua调试
在调试模式下,控制台中输出lua日志,加下面代码到main.lua文件中
function babe_tostring(...)
local num = select("#",...);
local args = {...};
local outs = {};
for i = 1, num do
if i > 1 then
outs[#outs+1] = "\t";
end
outs[#outs+1] = tostring(args[i]);
end
return table.concat(outs);
end
local babe_print = print;
local babe_output = function(...)
babe_print(...);
if decoda_output ~= nil then
local str = babe_tostring(...);
decoda_output(str);
end
end
print = babe_output;
做了这么多,要的就是这个调试功能,和调试C++代码一样.
首先要先运行项目,产生exe文件(之前已经提过).然后把生成的Lua项目设置成启动项目,在Lua文件中添加断点.然后按F5启动项目,等待进入断点,效果图如下:
按F9增加和删除断点,F10逐过程,F11逐语句进行跟踪调试。
这个是调用堆栈
局部变量窗口什么 值都没有 得到,我目前是这样的.
每次我都只能把鼠标放在对应的局部变量上才能看到具体的信息. 或者用鼠标把cocos2d-x对象拖到“监视”窗口中查看.
这个我觉得很不方便,让人难受