位置: 编程技术 - 正文

Cocos2dx-3.x 学习笔记一:屏幕分辨率及适配问题(cocos2dx 3.17)

编辑:rootadmin

推荐整理分享Cocos2dx-3.x 学习笔记一:屏幕分辨率及适配问题(cocos2dx 3.17),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx 3.17,cocos2dx4.0入门,cocos 2d x,cocos2d教程,cocos2d-x教程,cocos2dx入门,cocos2dx4.0教程,cocos2dx4.0教程,内容如对您有帮助,希望把文章链接给更多的朋友!

如何实现屏幕的适配,尤其是利用cocos studio进行开发的过程中,制定的界面采用绝对布局,在实际设备显示的时候可能出现很多的问题

给出了一个很好的小结,可以参考,下面小结一下,给出自己的理解

准备

first:

利用cocos studio创建一个scene, 在其中添加一些基本元素,如背景,text,button等

本文设计的为 x的场景,如:

将上面的场景发布到visual studio中,然后我们开始测试编辑,首先在AppDelegate.cpp中进行相关设置

second:

介绍一下VisibleSize, WinSize, FrameSize, VisibleOrigin之间的联系和区别

(参考: ​FrameSize: 屏幕实际分辨率,固定不变的,由设备(即具体的手机自己决定)

​WinSize: 设计分辨率,相当于游戏设计的逻辑大小(即我们计划的游戏场景大小)

​VisibleSize: 显示分辨率,总是小于等于WinSize的

​VisibleOrigin: 即VisibleSize在WinSize中的左下角坐标

​e.g:

​ ​FrameSize-> width:, height:

​ ​WinSize-> width:, height:

​ ​在无ResolutionPolicy::NO_BORDER的条件下为:(NO_BORDER的具体意义下面讲述)

third:

setDesignResolutionSize(DW, DH, resolutionPolicy)

有三个参数,设计分辨率宽,设计分辨率高,分辨率策略。

ResolutionPolicy::SHOW_ALL : 屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(小)者作为宽、高的缩放因子。保证了设计区域全部显示到屏幕上,但可能会有黑边。

ResolutionPolicy::SHOW_FIT: 屏幕宽 与 设计宽比 作为X方向的缩放因子,屏幕高 与 设计高比 作为Y方向的缩放因子。保证了设计区域完全铺满屏幕,但是可能会出现图像拉伸

ResolutionPolicy::NO_BORDER: 屏幕宽、高分别和设计分辨率宽、高计算缩放因子,取较(大)者作为宽、高的缩放因子。保证了设计区域总能一个方向上铺满屏幕,而另一个方向一般会超出屏幕区域

测试FrameSize, WinSize, VisableSize之间关系

first :

原始图像如上所示,现在我们假设设备FramSize(,),设置FramSize为(,),则显示结果为

glview->setFrameSize(,);

director->getOpenGLView()->setDesignResolutionSize(, , ResolutionPolicy::SHOW_ALL);

如果将WinSize设置为 (, ):

glview->setFrameSize(, );

Cocos2dx-3.x 学习笔记一:屏幕分辨率及适配问题(cocos2dx 3.17)

director->getOpenGLView()->setDesignResolutionSize(, , ResolutionPolicy::SHOW_ALL);

----》因为屏幕太小,所以没有能完全显示出来,理论上是ok的

换算成:

glview->setFrameSize(,);

director->getOpenGLView()->setDesignResolutionSize(, , ResolutionPolicy::SHOW_ALL);

---->winSize---width:, height:

---->visibleSize---width:, height:

测试适配问题

上面测试的FrameSize和VisibleSize之间正好成比例,那么不成比例的情况呢,如

glview->setFrameSize(,);

director->getOpenGLView()->setDesignResolutionSize(, , ResolutionPolicy::SHOW_ALL);

--------------------------------------------------------------------------------------------------------------

glview->setFrameSize(,);

director->getOpenGLView()->setDesignResolutionSize(, , ResolutionPolicy::SHOW_ALL);

最常用的分辨率策略是SHOW_ALL,那么上面的问题如何解决?

在 show all 的基础上加以改进,完全消除黑边,原理如下:

show all表示保证图片资源全部能够显示在界面上,因此按比例进行缩放时,是有选择的,我们举例说明:

放大---->

​设 FrameSize: dw, dh, VisibleSize: vw, vh

​缩放比例为: sx = dw / vw, sy = dh / vh -----> 如 sx=2, sy=3, 全部显示时,需要将资源宽放大两倍,高放大三倍,故此处选择的将是统一放大两倍,即高将填不满,有黑边,考虑将vh放大一点也达到dh的一半

即​这里选择方案将是重设vh = dh / sx

​---> 放大时,选择较小的比例

​if sx < sy then vh=dh/sx

​然后整体的放大sx倍即可完美的填充界面

缩小时----->

​ ​正和上面相反,假设sx=0., sy=0.5 -----> 按照show_all的原则,选择宽填满,缩小1/4,此时可以知道高将有空白黑边,因此需要放大vh为之前的两倍才有可能在缩小1/4的时候恰好填充屏幕

​即这里选择方案是重设

​if sx < sy then vw = dw/sy

这里,通过实际测试,发现:

---->在WinSize小于FrameSize的时候,即需要缩小图片时,可以采用下面的来实现:

---->当WinSize大于FrameSize的时候,即需要放大图片时,采用

cocos2dx + android 如何添加百度插屏广告 这几天,楼主和我的几个小伙伴完成了一个自己的Android游戏,使用cocos2d-x-.2.1.5编写的,现在基本上都完工了,但是当进行到发布应用这一步时,本来打

[置顶] Cocos2d-x《雷电大战》(6) 智能敌机AI来袭--飞行路径算法设计与实现(上) 林炳文Evankaka原创作品。转载请注明出处

错误日志--2 cocos2dx,粒子系统,plist 最近几天想试试在小游戏里面加入粒子系统,但是,内置的粒子系统满足不了需求。于是,找了一个粒子编辑器。链接:粒子编辑器但是,很奇怪生成

标签: cocos2dx 3.17

本文链接地址:https://www.jiuchutong.com/biancheng/368856.html 转载请保留说明!

上一篇:Cocos2dx物理引擎碰撞检测总结(cocos3d物理引擎)

下一篇:cocos2dx + android 如何添加百度插屏广告

  • 小规模季度不超过30万是含税还是不含税
  • 什么时候过路费是半价
  • 微信支付宝收入计入科目
  • 增值税普通发票和普通发票的区别怎么交税
  • 检测费用可以开什么发票
  • 企业生产过程中执行标准要把握好以下原则
  • 赔偿款能否税前抵扣
  • 金税盘维护费减免政策代码
  • 加计扣除所得税怎么算
  • 委托进口增值税如何抵扣
  • 个体工商户开具增值税专用发票
  • 多交印花税申请怎么写
  • 代扣代缴增值税是什么意思
  • 核定征收怎么交企业所得税
  • 企业税审要钱吗
  • 建筑企业在四库一平台找不到
  • 跨季度的发票怎么冲销
  • 2016年的发票2020年可以认证吗
  • 个税专项附加扣除是什么意思
  • 个税是应发工资扣,还是实发工资扣
  • win10文件用什么打开
  • 商业一般纳税人辅导期截止时间
  • windows11搜索
  • 农民专业合作社税收优惠政策
  • windows不能打开exe文件
  • RuntimeError: (PreconditionNotMet) The third-party dynamic library (cudnn64_7.dll) that Paddle depen
  • 内部退养如何缴纳个人所得税
  • uniapp的css库
  • 超期未认证的发票怎么处理
  • php递归实现1到100的和
  • cpu占满gpu不工作
  • 2022前端面试题及答案
  • 动态规划知乎
  • 将自产产品用于建造厂房
  • 累计盈余需要设置明细科目吗
  • 13%和17%税率
  • 社保信息修改到哪里办理
  • 计提消费税的会计分录讲解
  • 个体户核定征收超过了怎么办
  • 结转生产成本是不是成品入库
  • 资本公积溢价转增
  • 用人单位延迟给员工交社保怎么办
  • 待抵扣增值税退税
  • 固定资产不折旧直接进费用
  • 现金流量表现金及现金等价物净增加额
  • 工程项目立项前包括哪几个过程
  • 公司现金支票取钱需要带什么资料
  • 消防安装公司属于什么行业
  • mysql中union用法
  • sql语句如何将一列数据值相加
  • 阿里云centos7安装图形界面
  • Windows 9 Storage Sense储存功能更多图像
  • windowsserver2003ftp服务器怎么搭建
  • mac通讯录怎么删除
  • wrme.exe是什么
  • 蓝屏 win7
  • windows图片密码
  • WFXMOD32.EXE - WFXMOD32是什么进程
  • MSupdate.exe - MSupdate是什么进程 有什么用
  • win7系统监控
  • win10预览体验推荐哪个通道
  • cocos2dx屏幕适配解决方案
  • 常见的场景切换效果有哪些
  • 微信小程序倒计时乱跳
  • jquery代码实现鼠标点击
  • main报错
  • 爱家保障行动
  • js原生dialog
  • python cx_Oracle模块的安装和使用详细介绍
  • javascript要学到什么程度
  • node js require
  • Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
  • python常见的格式化输出小结
  • jquery mobile怎么样
  • 税务三方协议多久生效
  • 保险机构如何代收车船税
  • 北京朝阳区国税局
  • 钟楼在西安的哪里
  • 小规模纳税人开专票税率是1%还是3%
  • 国家个人所得税征收标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设