自己制作一个 CoCos2dx 错误信息框界面

自己制作一个 CoCos2dx 错误信息框界面

在调试cocos项目的时候对代码的错误提示,我们通常会在 调试窗里面去查看,但是如果有些不太影响的错误可能不易看到,我们可以制作一个 Debug 窗口来捕获 并显示在 游戏里面,这样就比较直观了.下面我们来制作:

  1. 首先我们需要创建一个类来初始化一个捕获窗口:创建一个 DebugWin 如下:
local DebugWin = class("DebugWin", function ()
    local layer = cc.LayerColor:create(cc.c4b(10,10,10,204))
    return layer
end)

function DebugWin:ctor(msg)
    cc.Director:getInstance():pause()
    local msg = string.sub(msg, 1, 1000)

    local size = cc.Director:getInstance():getWinSize()
    self:setLocalZOrder(100000)

    local msgText = ccui.Text:create(msg,nil,20)
    msgText:setTextAreaSize(cc.size(650,500))
    msgText:setTextHorizontalAlignment(cc.TEXT_ALIGNMENT_LEFT)
    msgText:setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER)
    msgText:setPosition(size.width * 0.5, size.height * 0.5  + 20)
    self:addChild(msgText)

    local closeBtn = ccui.Layout:create()
    closeBtn:setContentSize(cc.size(130,40))
    closeBtn:setBackGroundColorType(1)
    closeBtn:setBackGroundColor(cc.c3b(200,0,0))
    closeBtn:setPosition(cc.p(size.width / 2 - 65, 80))
    self:addChild(closeBtn)
    local label = ccui.Text:create("确定",nil,25)
    label:setPosition(65,20)
    closeBtn:addChild(label)

    closeBtn:setTouchEnabled(true)
    closeBtn:addTouchEventListener(function(sender, state)
        if state == ccui.TouchEventType.ended then
            self:removeFromParent()
            cc.Director:getInstance():resume()
        end
    end)
end

return DebugWin
  1. 在cocos 的 init.lua 文件里面 将捕获的error信息添加到我们的窗口上面去.修改如下:
__G__TRACKBACK__ = function(msg)
    local msg = debug.traceback(msg, 3)
    print(msg)
    if DEBUG > 1 then
        local test = require "DebugWin"
        test = test.new(msg)
        local scene = display:getRunningScene()
        if tolua.isnull(scene) then
            scene = cc.Scene:create()
            display.runScene(scene)
        end
        scene:addChild(test,99999)
        
    end
    return msg
end

在这里插入图片描述
3. 运行后的结果如下,这样调试起来如果游戏有报错,就比较直观了.
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Java_oujinjie/article/details/85531873
今日推荐