7.2 使用KxDebuger调试Cocos2d-x
虽然使用Console可以简单地调试Cocos2d-x的内容,但效率较低,而且步骤比较烦琐。如果能像Unity那样提供运行时的可视化调试方案,那么可以大大提高调试效率。
Cocos2d-x官方新出的Creator也类似Unity,可以对游戏内容进行调试,但并不支持调试C++开发的Cocos2d-x程序,仅支持JavaScript和Lua。因此笔者设计了一套简易的可视化调试工具KxDebuger用于调试Cocos2d-x, KxDebuger不仅可以调试PC上的程序,还可以远程调试移动设备上的程序,由于时间原因,目前的KxDebuger还不够完善,但以后笔者会花一些时间来进行维护,使其成为一个顺手的调试利器。
1.使用KxDebuger
kxDebuger分为两部分,第一部分是嵌入Cocos2d-x程序的库,第二部分是GUI界面工具。KxDebuger库依赖于ProtocolBuffer和kxServer,前者是Google开发的一个协议库,后者是笔者开发的一个简易的网络库,可以直接将这两个库的代码包含到项目中,具体可以参考KxDebuger示例项目,读者可以在下载地址中找到它。添加好KxDebuger库之后只需要执行一行初始化代码即可使用KxDebuger库的客户端。
kxdebuger::KxDebuger::getInstance()->init();
在代码中初始化KxDebuger库之后,编译程序并启动Cocos2d-x程序,接下来就可以启动KxDebuger的GUI界面工具了,如图7-4所示。首先需要选择IP和端口,默认的端口是6666,可以在KxDebuger::init中设置指定的端口,如果是本机调试,可以选择127.0.0.1,如果需要在其他计算机或移动设备上调试,需要修改对应设备的IP地址。
图7-4 KxDebuger启动界面
连接成功之后,GUI解密工具会切换到调试界面,如图7-5所示,我们可以看到左侧的场景树和右侧的节点属性面板,在属性面板中可以查看和修改节点的各种属性。
图7-5 KxDebuger调试界面
2.KxDebuger功能简介
❑ 调试节点树:通过右侧的树控件可以实时观察场景树,并执行刷新和删除、查看节点等操作。
❑ 调试节点:当选中节点之后,可以在右侧的属性面板中查看并修改节点的各种属性,也可以激活高亮该节点。
❑ 单步调试:通过“调试”菜单下的快捷键可以暂停、恢复游戏,也可以逐帧调试游戏,这在捕获一些瞬间出现的动画问题时非常有用。
❑ 自定义调试:是KxDebuger的高级功能,通过修改GUI界面工具,以及在KxDebuger中注册新的服务,可以调试自定义的内容,如对游戏的AI和特定的逻辑进行调试。