【cocos2dx 3.3 lua】02 去掉调试信息以及多分辨率适配

去掉调试信息

去掉调试信息需要在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。

以下是几种显示方式:

  1. EXACT_FIT:完全贴合,一个方向可能会出现拉伸,导致画面失真
  2. NO_BORDER:无边框,画面不失真,部分画面可能会在可视范围外
  3. SHOW_ALL:显示全部,画面不失真,一个方向可能会有黑色无画面区域
  4. 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有关

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...