cocos2dx中的设计分辨率与屏幕适配策略
1.首先明确几个概念:
设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964)
屏幕分辨率:又叫帧的大小,glview->setFrameSize(480,640);
这是指你的设备的屏幕的大小,通常手机的屏幕分辨率也就那么几种固定的大小,如480*320,1024*768,等等,在win32模拟器,或其他模拟器中,也指模拟器屏幕的大小.
2.疑问,既然图片是为手机屏幕服务的,干嘛搞这么多概念,直接一切以屏幕为中心不就得了,所有资源图片的大小都和手机屏幕的大小都一致不就得了,当然这是最完美的情况,但是我们要知道,通常一款游戏的图片可能要适配多款设备,例如,iphone6,iphone5s,iphone4系列,ipad,光苹果系列,就这么多不同大小尺寸的机型,如果都为每一种屏幕尺寸的设备都做一套资源图片的话,是不是很浪费?虽然效果肯定是最佳的,但是考虑到小公司,哪有这么多成本来用在美术作图上,一款游戏能花钱做一套资源图片就很了不起了,因此使设计分辨率(资源图片的实际大小),来适配不同的设备的屏幕分辨率就显得很重要了.此时就引出了适配策略的话题.
3.适配策略:
cocos2dx中一开始只提供了三种策略:
ResolutionPolicy::EXACT_FIT //屏幕宽 与 设计宽比 作为X方向的缩放因子,屏幕高 与 设计高比 作为Y方向的缩放因子,即x轴,y轴都自动缩放,保证了设计区域完全铺满屏幕,但是可能会出现图像拉伸。
ResolutionPolicy::NO_BORDER //与上面对应,取屏幕宽、高分别和设计分辨率宽、高计算缩放因子,较(大)者作为宽、高的缩放因子。保证了设计区域总能一个方向上铺满屏幕,而另一个方向一般会超出屏幕区域.即看哪个方向上的缩放因子大,来决定整个图片的缩放比例.
ResolutionPolicy::SHOW_ALL //与上面对应,屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(小)者作为宽、高的缩放因子。保证了设计区域全部显示到屏幕上,但可能会有黑边。即取二者中较小的缩放因子作为整个图片的缩放比例.因此会出现黑边.
/*******额外提供了两种策略******/
宽度固定:
ResolutionPolicy:: FIXED_WIDTH//宽度不变,高度缩放
高度固定:
ResolutionPolicy:: FIXED_HEIGHT//根据字面意思理解即可,高度不变,宽度缩放
相关的操作方法:
glview->setFrameSize(480, 720);//设置屏幕分辨率,又叫模拟器的帧大小,即要显示的窗口帧的大小
glview->setDesignResolutionSize(854, 468, ResolutionPolicy::EXACT_FIT);//设置设计分辨率的大小,即拿到手的原始的资源图片的大小,如果该资源的大小与设备的屏幕大小不一致,则需要设置适配原则,就是上面讲的五种策略.(其实就是缩放图片的比例如何确定)
cocos2dx中的设计分辨率与屏幕适配策略的更多相关文章
- Cocos2d-x 学习笔记(23) 分辨率与屏幕适配
Cocos2d-x的分辨率可以分为两种:屏幕分辨率和设计分辨率. 屏幕分辨率就是屏幕窗口的大小,单位是像素. 设计分辨率单位是点,一个点可能包括多个像素. 如果把一台显示器自身的分辨率比作屏幕分辨率的 ...
- 两分钟让你明白cocos2dx的屏幕适配策略
闲来无事,整理了一下cocos2dx的屏幕适配策略,本文适用于想快速理解cocos2dx适配的开发者. 我们先假设:以854 * 480 的屏幕为标准进行开发,当然,这也就是cocos2dx所说的设计 ...
- cocos2dx 屏幕适配策略
cocos2dx的常用函数: CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小(即开发时为基准的屏幕分辨率) ...
- cocos2dx屏幕适配方案
我们在利用cocos2dx来开发游戏时,在开始时就不可避免的会遇到屏幕适配问题,来使我们的游戏适应移动终端的各种分辨率大小.目前,大家采用的屏幕适配方案不一,网上的资料也比较丰富,下面我也将自己使用的 ...
- cocos2dx ——屏幕适配
本文出自 “夏天的风” 博客,请务必保留此出处 http://shahdza.blog.51cto.com/2410787/1550089 手机的屏幕大小千差万别,如现在流行的安卓手机屏幕大部分长宽比 ...
- Cocos2dx开发之屏幕适配
由于各种智能手机的屏幕大小都不一致,会出现同一张图片资源在不同的设备分辨率下显示不一样的问题.为避免这样的情况,需要Cocos引擎能提供多分辨率的支持,也就是说要求实现这样的效果 — 开发者不需要考虑 ...
- cocos2dx[3.2](5) 屏幕适配
1.两个分辨率 1.1.窗口分辨率 在AppDelegate.cpp中有个设置窗口分辨率的函数.该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小. // glView->setFr ...
- cocos2dx基础篇(27) 屏幕适配
[3.x]https://blog.csdn.net/qq_40338728/article/details/82964046 [屏幕适配] 1.两个分辨率 1.1.窗口分辨率 在main.cpp中有 ...
- 关于Unity中的屏幕适配
一.Game视图的屏幕分辨率可以先自定义添加,供以后选择,以下是手游经常用到的分辨率: 1.1136X640,iPhone5 2.1920X1080,横屏,主流游戏都是这个分辨率 3.1080X192 ...
随机推荐
- 初识 Asp.Net内置对象之Session对象
Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...
- OpenFlow概述
OpenFlow名称里面虽然包括“Flow”,但其并不是“又一个流程引擎”,我们认为世界上的流程引擎已经足够多了,每个流程引擎都各有千秋,有的甚至免费,所以我们不需要再做一个流程引擎,我们做OpenF ...
- AngularJS学习小结
在刚学习AngularJS的时候觉得好像挺简单的,看见老师每次用很少的代码就做出用源生代码或者JQuery要用多行代码才做出的效果的时候觉得好像思路很简单,也很好写就写出来了,但是等到我们自己做的时候 ...
- js获取iframe的parent对象
使用谷歌浏览器调试代码时无意间发现了一个奇特的问题:从iframe页面调用父级页面的方法,window.parent.text(),出现 Blocked a frame with origin &qu ...
- 跟我一起学习ASP.NET 4.5 MVC4.0(四)(转)
前几个文章中介绍了一些关于MVC4.0的东东,今天我们来看一下登陆验证,也可以说是权限验证,即AuthorizeAttribute.这个可以使用在控制器Controller上,也可以使用在Action ...
- 可以伸缩的查询面板 (searchBar)
最近有这样的需求,一个页面查询条件特别多,一次全部展示出来的话就占用大量的空间,所以分成了两类,简单搜索和高级搜索,当点击高级搜索的时候就会全部显示. 这样就存在一个问题,页面(navTab,dial ...
- Exchange 2010先决条件
为了方便大家一步到位的进行学习,已将各种角色安装所需的先决条件给与总结了,但注意系统需求是2008 R2 1.对于执行客户端访问.集线器传输及邮箱角色典型安装的服务器 ( ...
- Iframe跨域_ASP.NET
1.描述: A系统 需要 调用 B系统的页面,被调用的B系统的页面b.html内部嵌套了iframe框架c.aspx地址页 2.问题呈现: ie浏览器下 Chrome浏览器下 追踪 3.问题原因: X ...
- cetos 7 常用命令
1. 安装 yum install 2. 可安装查找 yum search 3. 查找文件 whereis 4. 查看文件cat 5. 修改文件vi
- UI1_HTTP下载
// DataModel.h // UI1_HTTP下载 // // Created by zhangxueming on 15/7/17. // Copyright (c) 2015年 zhangx ...