"你以后想成为什么样的人?"
"什么意思,难道我以后就不能成为我自己吗?"
除了上一篇提到的支持 zbs 调试,这是在开发遇到瓶颈的时候才会拿出来用。因为 zbs 的编辑功能是在和 sublime 不能相比。
在日常开发中,还是依靠 print 输出调试居多,但是默认调试器的堆栈信息略少。于是增加了一个 StackTracePlus 的 Lua 库。
如果在发生崩溃时,模拟器能提示一下,甚至点击一下就能够跳转到响应的文件行数,那就很棒了。
方案如下,目前只支持 Mac 的 Sublime 编辑器:
__G__TRACKBACK__ = function ( msg )
local message = msg
local msg, origin_error = debug.traceback(msg, 3)
print(msg)
-- report lua exception
if device.platform == 'mac' then
local msg = debug.getinfo(2)
local info = cc.Label:createWithSystemFont(message, 'sans', 32)
info:setWidth(display.width)
info:setAnchorPoint(cc.p(0,1))
info:setPosition(0, display.height)
info:setTextColor(cc.c4b(255,0,0,255))
cc.Director:getInstance():getRunningScene():addChild(info, 998)
local function onTouchBegan(touch, event)
return true
end
local function onTouchEnded(touch, event)
os.execute(string.format('subl %s:%d', cc.FileUtils:getInstance():fullPathForFilename(msg.source), msg.currentline))
info:removeSelf()
end
local listener = cc.EventListenerTouchOneByOne:create()
listener:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN)
listener:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
local eventDispatcher = info:getEventDispatcher()
eventDispatcher:addEventListenerWithSceneGraphPriority(listener, info)
end
return msg
end
https://github.com/c0i/cocos2dx-lite/blob/dev/src/main.lua#L31-L52
投放到群里,反应不太强烈,都在搞各种山寨币。把这个小工具先放在自己的日常工作里面试一下,看看究竟能不能带来帮助吧。
网友评论