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

  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/ttss/p/4125108.html
Copyright © 2011-2022 走看看