Cocos设计分辨率(glView)
来源:互联网 发布:单片机led 编辑:程序博客网 时间:2024/05/22 04:48
在AppDelegate::applicationDidFinishLaunching() 中有glview->setFrameSize(480,320); 以及glview->setDesignResolutionSize(1200/2,1200*320/480/2,ResolutionPolicy::NO_BORDER);
还有函数:director->setContentScaleFactor() 可以设置所有图片的缩放程度
这两个函数,setFrameSize是窗口大小,像素为单位。
setDesignResolutionSize是设计大小,通常我们用这个来适配整个游戏的拉伸和画面表达,此函数负责协调我们的游戏图片与手机窗口之间的拉伸比例。其前两个参数是大小像素,我们期望表现的比例就是这俩参数决定的(分别表示设计宽度和高度)。第三个参数是适配策略有EXACT_FIT NO_BORDER SHOW_ALLFIXED_HEIGHT FIXED_WIDTH几种类型,NOBORDER往往不能展示所有图片效果,大于窗口大小的图将不被显示。EXACTFIT是最常用的,即将图片按窗口比例铺满全屏。FIXED无论是左还是右都有可能有黑边。
关于Director::getInstance()->getVisibleSize();
这个函数获取整个可见图片在GL坐标下的大小。
Director::getInstance()->getWinSize();
这个函数获取整个图片在GL坐标下的大小。
Director::getInstance()->getVisibleOrigin();
返回整个可见图片在GL坐标下的原点坐标
通常而言,getVisibleSize和getWinSize都是一样的(在选择EXACT_FIT SHOW_ALL这两种设计方式时)但是当选择NO_BORDER 方式时:
假设图片大小600x600,设置屏幕大小为400x300则在NO_BORDER下:
getWinSize为(600,600),getVisibleSize为(600,450)——显然遵循400x300的比例,但是,上下各有一部分原图未被显示出来,看getVisibleOrigin为(0,75)就可以明白。图的上下各有75宽度的内容被弄到了屏幕外(正是Noborder,没有边界),于是可见的原点就在(0,75)了。
综上,一般不要用NO_BORDER,用SHOW_ALL和EXACT_FIT,其都是走的设计大小(我们一般不管setFrameSize)。
- Cocos设计分辨率(glView)
- cocos 分辨率
- Cocos Studio如何做分辨率适配
- cocos设计模式委托实践
- GLView基本分析
- 定制cocos2d的GLView
- cocos 2d x 在运行时候修改分辨率
- Cocos与Cocos2d-x协作教程--多分辨率支持
- Android&IOS屏幕物理分辨率整理(设计适应多分辨率)
- iOS UI设计 ------- 物理分辨率 逻辑分辨率
- cocos2dx lua ios glview 截图
- Ceetron.GLview.Inova.v8.3.11
- Cocos动作(1)
- Cocos动作(2)
- Cocos动作(3)
- cocos
- Cocos
- cocos
- 一次nginx 502 & mysql not contect 排错经历
- Cocos容器——Vector
- 数据存储--文件存储
- ajax 从后台获取json格式 提示 parseerror
- 【php网络 基础知识】详解get、post请求、文件上传
- Cocos设计分辨率(glView)
- HDU 5651 xiaoxin juju needs help
- Kubernetes1.1源代码分析(二)
- JavaScript闭包
- 个人介绍 真实版本 vs 社会主义接班人版本
- CocosGUI---Label
- SQL的join操作
- 【坑】strust2中突然访问不了了的原因
- 校验