Cocos2d-x3.2 屏幕适配

简介:

1、AppDelegate.cpp 文件中

?
1
2
3
4
5
6
7
8
9
10
11
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 "


目录
相关文章
|
开发工具
npm install 卡死问题解决
npm install 卡死问题解决
1350 0
|
10月前
|
机器学习/深度学习 人工智能 搜索推荐
AI技术在医疗领域的应用与挑战
本文深入探讨了人工智能(AI)技术在医疗领域的应用现状、面临的挑战以及未来发展趋势。随着科技的飞速发展,AI技术正逐渐渗透到医疗行业的各个环节,从疾病诊断、治疗方案制定到患者管理等,都展现出巨大的潜力和价值。然而,AI技术的广泛应用也带来了数据安全、伦理道德、法规监管等一系列挑战。本文旨在通过分析AI技术在医疗领域的实际应用案例,揭示其优势与不足,为推动AI技术在医疗领域的健康发展提供参考。
672 23
|
11月前
|
机器学习/深度学习 人工智能 数据可视化
小滑块上个斜面,难倒多少高中生?现在,AI让它动起来了
《Augmented Physics:基于机器学习的物理学习工具》 高中物理学习中,小滑块上斜面等问题常让学生困惑。Augmented Physics利用AI技术,将静态物理图示转化为交互式模拟,通过增强实验、动画图示、双向操作和参数可视化等技术,帮助学生直观理解物理概念。研究表明,该工具能有效提升学生对物理概念的理解,具备广阔的应用前景。
222 1
|
JavaScript Ubuntu Java
零基础开发 nginx 模块
推荐学习资料: * nginx 开发指南: http://nginx.org/en/docs/dev/development_guide.html * nginx 动态模块编译博客文章: https://www.nginx.com/blog/compiling-dynamic-modules-nginx-plus/ * nginx 源码: https://github.com/nginx
4995 1
|
存储 运维 前端开发
淘宝 NPM 镜像站切换新域名啦
用CNPM/淘宝源的开发者们请注意,淘宝NPM 镜像站喊你切换新域名啦。新的Web 站点:https://npmmirror.com,Registry Endpoint:https://registry.npmmirror.com。随着新的域名已经正式启用,老 http://npm.taobao.org 和 http://registry.npm.taobao.org 域名将于 2022 年 05 月 31 日零时起停止服务。(望周知,求转发)
15227 1
|
Linux Docker 容器
在 CentOS7 上安装新版 Docker CE(使用国内源)
使用国内源在 CentOS 7 上安装和删除最新版 Docker CE 的简单教程。
13239 1
|
Linux Docker 容器
CentOS7系统安装最新版本docker实战
CentOS7系统安装最新版本docker实战
1851 0
CentOS7系统安装最新版本docker实战
|
Ubuntu 测试技术 Linux
imx6ull开发板各个功能测试
imx6ull开发板各个功能测试
482 0
imx6ull开发板各个功能测试
|
机器学习/深度学习 缓存 架构师
十年技术进阶路,让我明白了三件要事(8000字长文)
8000字长文,大概花费您10分钟的阅读时间,我将以十年成长道路与八年写博经历分享与你,希望能给予各位读者或多或少的建议与提醒
696 1
十年技术进阶路,让我明白了三件要事(8000字长文)
|
机器学习/深度学习 编解码 算法
目标检测算法——YOLOv2
目标检测算法——YOLOv2
395 0
目标检测算法——YOLOv2