quick cocos 的屏幕适配
发布时间:2020-12-14 19:38:29 所属栏目:百科 来源:网络整理
导读:按照之前做cocos2dx的做法,是做了2套图,一套是4:3的,一套是16:9的,对于iphone来说,就是对应5以前的短脸,和对应5以后的长脸。对于其他机器,小于等于4:3的按4:3拉伸铺满,大于4:3的按16:9拉伸铺满。 但是初识quick,发现有点不一样。这篇文章是廖大
按照之前做cocos2dx的做法,是做了2套图,一套是4:3的,一套是16:9的,对于iphone来说,就是对应5以前的短脸,和对应5以后的长脸。对于其他机器,小于等于4:3的按4:3拉伸铺满,大于4:3的按16:9拉伸铺满。
但是初识quick,发现有点不一样。这篇文章是廖大写的关于适配的。文中推荐是按照宽度适配。
但是我还是觉得以前的做法更科学,而且各方面配合起来也更顺利。然后问题来了,我居然不知道在quick里面怎么改他。
此处略去大量测试方案和测试数据和测试结果和测试时间(当然我不光是找这个东西,顺带测了下其他的。。。)
最后结论如下: 在quick的display初始化的时候,会根据config里面的设置,比较重要的是这几个: CONFIG_AUTOSCALE_CALLBACK CONFIG_SCREEN_WIDTH CONFIG_SCREEN_HEIGHT CONFIG_SCREEN_AUTOSCALE最初始化,具体涉及到的如下: if CONFIG_SCREEN_WIDTH == nil or CONFIG_SCREEN_HEIGHT == nil then CONFIG_SCREEN_WIDTH = w CONFIG_SCREEN_HEIGHT = h end if not CONFIG_SCREEN_AUTOSCALE then if w > h then CONFIG_SCREEN_AUTOSCALE = "FIXED_HEIGHT" else CONFIG_SCREEN_AUTOSCALE = "FIXED_WIDTH" end else CONFIG_SCREEN_AUTOSCALE = string.upper(CONFIG_SCREEN_AUTOSCALE) end local scale,scaleX,scaleY if CONFIG_SCREEN_AUTOSCALE and CONFIG_SCREEN_AUTOSCALE ~="NONE" then if type(CONFIG_SCREEN_AUTOSCALE_CALLBACK) == "function" then scaleX,scaleY = CONFIG_SCREEN_AUTOSCALE_CALLBACK(w,h,device.model) end if CONFIG_SCREEN_AUTOSCALE == "FILL_ALL" then CONFIG_SCREEN_WIDTH = w CONFIG_SCREEN_HEIGHT = h scale = 1.0 glview:setDesignResolutionSize(CONFIG_SCREEN_WIDTH,CONFIG_SCREEN_HEIGHT,cc.ResolutionPolicy.NO_BORDER) else if not scaleX or not scaleY then scaleX,scaleY = w / CONFIG_SCREEN_WIDTH,h / CONFIG_SCREEN_HEIGHT end if CONFIG_SCREEN_AUTOSCALE == "FIXED_WIDTH" then scale = scaleX CONFIG_SCREEN_HEIGHT = h / scale elseif CONFIG_SCREEN_AUTOSCALE == "FIXED_HEIGHT" then scale = scaleY CONFIG_SCREEN_WIDTH = w / scale else scale = 1.0 printError(string.format("display - invalid CONFIG_SCREEN_AUTOSCALE "%s"",CONFIG_SCREEN_AUTOSCALE)) end glview:setDesignResolutionSize(CONFIG_SCREEN_WIDTH,cc.ResolutionPolicy.NO_BORDER) end else CONFIG_SCREEN_WIDTH = w CONFIG_SCREEN_HEIGHT = h scale = 1.0 end注意出现了 cc.ResolutionPolicy. NO_BORDER的地方,然后从这里附近开始,根据判断条件,自己改回以前那种习惯的方式。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- swift – 我可以使用case枚举比较作为布尔表达式吗?
- swift – Xcode需要很长时间才能打印调试结果.
- oracle行列转换
- Flex之旅--工欲善其事必先利其器(Flashbuilder安装配置破解
- react-native iterator typeof符号错误
- oracle 安装SCOTT/TIGER模式
- ruby-on-rails – 黄瓜测试突然停止
- objective-c – 在什么情况下,在Cocoa的try / catch / fina
- Postgresql中临时表(temporary table)的特性和用法
- objective-c – 在全屏模式下连接到NSView的NSView上的NSCo