Cocos设计分辨率(glView)
2016-03-27 10:41
274 查看
在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)。
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容器——Vector
- cocos内存管理
- cocos碰撞检测
- Cocos定时器
- Cocos单点触摸
- Cocos坐标体系
- Cocos精灵
- Cocos 安装和配置和初探(创建自己的Scene
- 【cocos2dx 3.10】android studio真机调试的配置
- Cocos2d-x3.9 在Windows平台下编译打包成APK
- cocos2d-x中文显示问题
- cocos studio 执行命令出错,返回值:2。
- 多平台响应键盘事件!(适用于Cocos2dx 3.0 alpha以上版本号)
- 解决Cocos项目中遇到的fatal error c1083(无法打开包括文件)
- 在cocos2dx中通过php文件访问服务器数据库(3)
- 在cocos2dx中通过php文件访问服务器数据库(2)
- cocos2dx windows phone平台下CCLabelTTF自己主动换行的实现(2)
- Cocos2d-x笔记记忆整理Day6-绘图原理及优化
- Cocos2d-x笔记记忆整理Day5
- Cocos2d-x笔记记忆整理Day4