美文网首页
二、工程代码简介

二、工程代码简介

作者: 凉夜lrs | 来源:发表于2019-03-11 16:02 被阅读0次

    main.lua是程序入口,先来看main.lua

    cc.FileUtils:getInstance():setPopupNotify(true)
    

    1.设置 编译后的客户端开始执行时,使用FileUtils加载Luac文件的提示是否显示。

    这里先不管它,因为新的工程无论是设置true还是false,看不出区别。

    require "config"
    require "cocos.init"
    

    2.require()方法表示引入一个文件,使用require()方法加载文件的过程会检查文件的lua语法,同时会完成被加载文件内部变量的初始化。
    加载cocos/init.lua文件,根据config.lua配置文件对cocos2d-lua框架进行初始化。

    cocos/init.lua就不说了,主要说下config.lua与config.json.

    config.lua

    -- 0 - disable debug info, 1 - less debug info, 2 - verbose debug info
    DEBUG = 2
    
    -- use framework, will disable all deprecated API, false - use legacy API
    -- 翻译:使用框架,将禁用所有过时的API,false - 使用过时的API
    CC_USE_FRAMEWORK = true
    
    -- show FPS on screen
    CC_SHOW_FPS = true
    
    -- disable create unexpected global variable
    CC_DISABLE_GLOBAL = true
    
    -- for module display
    CC_DESIGN_RESOLUTION = {
        width = 960,
        height = 640,
        autoscale = "FIXED_HEIGHT",
        callback = function(framesize)
            local ratio = framesize.width / framesize.height
            if ratio <= 1.34 then
                -- iPad 768*1024(1536*2048) is 4:3 screen
                return {autoscale = "FIXED_WIDTH"}
            end
        end
    }
    

    CC_DISABLE_GLOBAL = true表示不能使用全局变量,最好不要在函数中声明全局变量,不然很难管理和排查错误。可以通过cc.exports.XXX声明全局变量,XXX为你要声明的全局变量 ;或者置为false。

    3.lua中定义一个变量时,默认是全局变量(在整个程序中都不会去释放),为了避免是全局变量,定义时会加local来让变量为局部变量。在编程过程中难免会出现忘记加local来定义局部变量, 为了避免全局变量引来的bug,cocos2d-lua引擎就加了检查全局变量的功能。代码在srccocos/framework/init.lua

    4.FIXED_HEIGHT:适高,设计分辨率不变,高度不变,超出的宽会被裁切。
    FIXED_WIDTH:适宽,设计分辨率不变,宽度不变,超出的高会被裁切。
    注:FIXED_HEIGHT和FIXED_WIDTH,设计分辨率不变,根据游戏的类型采用这2种方式,3.0版本后添加的。

    config.json

    5.只有在Cocos Code IDE中运行才需要该文件,它是配置模拟器运行信息的,该文件在工程发布时候和Web环境下运行都没有用处。但如果想Cocos Code IDE中运行,并改变模拟器大小和方向,可以修改该文件。

    "init_cfg":{
           "isLandscape": true,    --横屏or竖屏
           "isWindowTop": false,
           "name": "Game1",  --窗口名字
           "width": 960,
           "height": 640,
           "entry": "src/main.lua",  --入口名字
           "consolePort": 6050,
           "uploadPort": 6060
        },
    

    输出控制台调试信息

    // define 1 to open console ui and setup windows system menu, 0 to disable
    #define SIMULATOR_WITH_CONSOLE_AND_MENU 1
    

    在frameworks/runtime-src/proj.win32/SimulatorWin.cpp 把SIMULATOR_WITH_CONSOLE_AND_MENU置为1即可弹出控制台。

    结语

    引用1,2:Cocos2d-x Lua运行流程
    引用3,4:Cocos2d-lua(五)config.json 和 config.lua
    引用5:config.json文件
    以上介绍的这些是不容易弄明白的地方,其他的Cocos2d-x Lua运行流程上写的很清楚,有需要的可以上这篇文章去看。

    相关文章

      网友评论

          本文标题:二、工程代码简介

          本文链接:https://www.haomeiwen.com/subject/eshbpqtx.html