51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3110|回复: 2
打印 上一主题 下一主题

Cocos2d-x分辨率适配方法

[复制链接]
  • TA的每日心情
    开心
    2015-5-5 11:32
  • 签到天数: 54 天

    连续签到: 1 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2015-3-17 10:26:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    分辨率适配异常是游戏测试者在工作过程中最常发现的问题之一,我们先来了解几个屏幕适配的概念。

    FrameSize是设备的原始分辨率,开发环境中可以通过CCEGLView::sharedOpenGLView()->setFrameSize()来设置设备的分辨率大小,当然也可以可以通过CCEGLView::sharedOpenGLView()->getFrameSize()获取得到设备的分辨率


    WinSize指的是开发所设计的分辨率,即setDesignResolutionSize方法中传入的前两个参数,通过CCDirector::sharedDirector()->getWinSize()获取


    VisibleSize在WinSize范围之内,保持FrameSize宽高比的最大显示区域。


    VisibleOrigin是在WinSize下被FrameSize截取的区域的大小,即设计分辨率中与屏幕左下角对应的点。


    有了上面的概念,我们来看看cocos自带的屏幕适配方案


    首先我们假设设备分辨率为768*1024,游戏设计的分辨率为640*960,背景图为大小为640*960,在屏幕居中显示,cocos2d-x默认的适配方案下图像会根据我们设置的位置显示大小,如果图像本身比设备分辨率大,则只显示设备分辨率大小的图像,反之则会留有空余处,形成黑边。如果我们采用下面三种基本适配方案得到的效果如下。


    1、强行拉伸图像使之填满整个屏幕,在图片与屏幕比例不同的情况下图片会扭曲变形,使用这种适配方式会导致原本是正方形的物体一不小心变成长方形。界面稍复杂,就会看见明显的不协调,通常我们不会采用这种处理方式。

    2、宽高等比缩放,缩放的比例按照宽比和高比中大的来进行。这样出现的好处是整个屏幕不会出现任何的黑边,但是缺点是一些画面会显示到屏幕之外而失去一些显示内容。

    3、宽高等比缩放,但缩放比例取小的进行。按这种方式适配可能会在屏幕上出现黑边,这是多数游戏适配时常用的方式。缺点是用户看到黑边以后觉得自己的设备屏幕面积没有完全利用影响用户体验。为了解决这个问题厂商会采用其他方式在黑边处填充一些内容,但这个做法的实际效果一般并不会很好,因为黑边区域仍然不会显示有效内容。



    文章来源:TestBird手游测试研究中心


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2015-11-25 17:13:07 | 只看该作者
    挺好啊挺好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-12-20 13:14
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]测试营长

    3#
    发表于 2015-11-26 16:28:24 | 只看该作者
    是挺好的啊,放到技术贴里是不是更好。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-21 21:42 , Processed in 0.065156 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表