二、工程代码简介

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运行流程上写的很清楚,有需要的可以上这篇文章去看。

你可能感兴趣的:(二、工程代码简介)