cocos2dx 增加Mac ConsoleWindow的功能

前提:使用cocos2dx-Lua(游戏逻辑全部使用lua编写,cocos可认为只是一个渲染引擎 + 要求效率高[AI寻路、等]的模块) 进行大型MMORPG游戏开发。能够实时调试,实时的对单元函数进行单元测试,能极大的提高代码的稳定性。故扩展Mac版本自带的Console功能(打印日志)。如下图所示:

整体界面如上,在原有的基础上,增加 Connect Debug、Stop Debug、 Record Log 按钮。

1.1 Connect Debug 可以在游戏运行时,链接上ZeroBraneStudio 后可进行Lua调试,从而避免启动多个游戏时,要手动注释代码来进行切换调试。ZeroBraneStudio 的使用参考如何使用ZeroBrane Studio 调试cocos2dx-Lua代码

1.2 Stop Debug 断开与ZeroBraneStudio 的调试。游戏可继续运行。

1.3 Record Log 是否打印日志。默认选中打印。正常开发功能时,当发现有问题的Log出现后,可去掉此勾选。保留日志现场。方便定位问题。

 

增加输入代码的编辑框(Send 与Clear Send)。实现原理就是调用LuaStack 的 executeString 将字符串当做Lua代码进行解析运行。

2.1 可进行函数覆盖。无需重启客户端。

2.2 可以实时打印函数或者变量的信息。方便进行函数等单元测试。

2.3 可发送游戏GM指令。

printLog(g_FootballNewData:calcFootRate(50))

Send 将编辑框内容发送运行。ClearSend 清空编辑框内容。

 

具体实现:在ConsoleWindows.xib 中增加按钮与编辑框等即可。绑定对应的函数。ConsoleWindowController.m 中实现。

auto luaEngine = cocos2d:ScriptEngineManager:getInstance()->getScriptEngine();

luaengine->executeString(str.c_str());

主要是提供一种提高工作效率和代码稳定性的思路。