zoukankan      html  css  js  c++  java
  • 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);//设置设计分辨率的大小,即拿到手的原始的资源图片的大小,如果该资源的大小与设备的屏幕大小不一致,则需要设置适配原则,就是上面讲的五种策略.(其实就是缩放图片的比例如何确定)

  • 相关阅读:
    单例模式-静态内部类方式
    单例模式-懒汉式(双重检验)
    单例模式-懒汉式
    sonarqube7.2版本web api简析
    sonarqube集成maven插件,上传扫描结果
    sonarQube快速入门7.2版本下载pmd插件,并设置只使用pmd规则
    gradle使用dokka插件出现Exception while loading package-list from ExternalDocumentationLinkImp
    让linux后解压的资源权限就是777(工作笔记)
    java并发 无锁cas的最简单理解
    java 必须要懂点的包 今日研究小结
  • 原文地址:https://www.cnblogs.com/ttss/p/4125108.html
Copyright © 2011-2022 走看看