去掉调试信息
去掉调试信息需要在lua内做,在C++内做会有问题。
win32平台下,程序运行lua脚本前,会通过命令行传一些参数,这些参数会改变调试信息等的显示,所以去掉调试信息要在lua内做。
代码如下:
cc.Director:getInstance():setDisplayStats(false)
config.json
config.json内的配置可以配置窗口标题、大小等一些参数,相关读取在ConfigParser.cpp内的ConfigParser::readConfig。
"isLandscape": true,//横版
"isWindowTop": false,//窗口置顶
"name": "QiuhetiLua",//窗口标题
"width": 960,//窗口宽
"height": 640,//窗口高
"entry": "src/main.lua",//加载的第一个lua文件,lua的入口
修改分辨率
cc.Director:getInstance():getOpenGLView():setDesignResolutionSize 修改分辨率。
其实就是内部根据显示方式对2个size(_screenSize和_designResolutionSize)取了一个scale,在内部将所有内容做scale。
具体内容可以看GLView::updateDesignResolutionSize。
以下是几种显示方式:
- EXACT_FIT:完全贴合,一个方向可能会出现拉伸,导致画面失真
- NO_BORDER:无边框,画面不失真,部分画面可能会在可视范围外
- SHOW_ALL:显示全部,画面不失真,一个方向可能会有黑色无画面区域
- FIXED_HEIGHT/FIXED_WIDTH:一个方向全屏显示,画面不失真,可能会有一部分在画面外或有黑色边框
几种size
getDesignResolutionSize 设定的分辨率大小,对应所有资源的分辨率,成员变量:_designResolutionSize
getFrameSize 帧尺寸,对应窗口大小,成员变量:_screenSize
getVisibleSize 可视尺寸,对应缩放后的可见区域的尺寸,相对_designResolutionSize,NO_BORDER时可能比_designResolutionSize小,其他时候与_designResolutionSize相同
具体可以参考GLView类内的各个函数。
NO_BORDER时的一组测试数据:
s:_screenSize
d:_designResolutionSize
x,y:visibleOrig
w,h:visibleSize
s:480 320
d:980 640
[LUA-print] x:10
[LUA-print] y:0
[LUA-print] w:960
[LUA-print] h:640
s:480 320
d:940 640
[LUA-print] x:0
[LUA-print] y:6.6666564941406
[LUA-print] w:940
[LUA-print] h:626.66668701172
可见visible相关的数据与screenSize无关,只与designResolutionSize有关。