博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x3.2 屏幕适配
阅读量:6992 次
发布时间:2019-06-27

本文共 1853 字,大约阅读时间需要 6 分钟。

  hot3.png

1、AppDelegate.cpp 文件中

bool AppDelegate::applicationDidFinishLaunching() {    // initialize director    auto director = Director::getInstance();    auto glview = director->getOpenGLView();    if(!glview) {        glview = GLView::create("My Game");        director->setOpenGLView(glview);    }    glview->setDesignResolutionSize(640, 960, ResolutionPolicy::SHOW_ALL);    ……………………}

       不能把setDesignResolutionSize放在if条件里,因为在Android端的时候是不进入if条件的,有另外的地方做了初始化。

参数说明:

ResolutionShowAll

等比例拉伸,直到宽度或高度达到屏幕的尺寸,但是:如果游戏的设计分辨率和设备的屏幕分辨率比率不同,最后会出现黑边。如果打算在黑边出填放别的精灵是无效的,因为等比缩放后,黑边的部分不会进行绘制。假如设计分辨率低于大部分设备分辨率,在忽略黑边的情况下,这种适配方式可以满足大部分设备,而我们后面改进的适配方案就是把留出来的黑边利用上。结论:无法使用,黑边出现不符合很多渠道和应用商店的规范。这个参数说的明白一点就是当我们等比率的扩大和缩小我们的图片资源的时候,最先和屏幕的宽或者是高相匹配后就不再拉伸另一边了,当资源图片的宽高比和设备的宽高比不同时肯定有黑边。

ResolutionExactFit

非等比例拉伸,图像拉伸到整个屏幕。但是:如果游戏的设计分辨率和设备的屏幕分辨率不同,最后游戏画面失真。结论:可以使用,但是效果很差。

ResolutionNoBorder

等比例拉伸,直到宽度或高度达到屏幕尺寸,且保证在另一方向上不会出现黑边。就是当我们等比率的扩大和缩小我们的图片资源的时候,当比率小的那一个边和设备的边重合时,比率大的那一个边就出去了,所以虽然不会留下黑边,但是有的图片资源出去了,也许我们写的某一个控件就出去了。

2、FrameSize:实际上就是设备的原始分辨率(实际屏幕的大小),开发环境中可以通过 glview->setFrameSize( ) 来设置设备的分辨率大小,当然也可以可以通过 glview->setFrameSize( ) 获取得到设备的分辨率;

(编程时设置游戏窗口的大小)

  WinSize:开发所设计的分辨率,即 setDesignResolutionSize( )方法中传入的前两个参数,通过Director::getInstance( )->getWinSize()获取;
  VisibleSize:一定小于等于WinSize,即在WinSize范围之内,保持FrameSize宽高比的最大显示区域。
  VisibleOrigin:在WinSize下被FrameSize截取的区域大小,即设计分辨率中与屏幕左下角对应的点。

3、常见android手机分辨率

4:3

VGA     640*480 (Video Graphics Array)
QVGA  320*240 (Quarter VGA)
HVGA  480*320 (Half-size VGA)
SVGA  800*600 (Super VGA)

5:3

WVGA  800*480 (Wide VGA)

16:9

FWVGA 854*480 (Full Wide VGA)
HD        1920*1080 High Definition
QHD     960*540

720p    1280*720  标清

1080p  1920*1080 高清

手机:

iphone 4/4s    960*640 (3:2)
iphone5         1136*640
小米1             854*480(FWVGA)
小米2             1280*720

 

分辨率对应DPI

"HVGA    mdpi"

"WVGA   hdpi "

"FWVGA hdpi "
"QHD      hdpi "
"720P     xhdpi"
"1080P   xxhdpi "

转载于:https://my.oschina.net/Jacedy/blog/350646

你可能感兴趣的文章
谈一谈mysql给我带来的中文乱码问题
查看>>
tomcat - main
查看>>
Using SVN in Android Studio
查看>>
C-rm模仿
查看>>
CCNA之四:RIPV1和EIGRP在不连续网络下的比较
查看>>
VMware克隆Centos6.5之后网卡修改方法
查看>>
SharePoint的一些基本操作
查看>>
Snagit 11使用心得
查看>>
Python做简单的验证码识别(ocr)
查看>>
用win7防止局域网内的ARP***
查看>>
【基础】 mysqldump 创建基于GTID的从库
查看>>
南方常见藤本
查看>>
Windows Server 2012 R2 VDI系列(五)—配置RDSH角色
查看>>
VBOX命令行创建虚拟机 及开启远程访问
查看>>
用批处理修改IP地址
查看>>
无线的规划(思路很重要 ,拿去忽悠人不错)
查看>>
ARM和嵌入式系统开发
查看>>
选择阿里云数据库HBase版十大理由
查看>>
大数据环境下数仓设计
查看>>
求1+2+…+n,要求不能使用乘除法、for、while、if、else...
查看>>