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