位置: 编程技术 - 正文

cocos2dx 3.2 屏幕适配的理解(cocos2dx屏幕适配解决方案)

编辑:rootadmin

推荐整理分享cocos2dx 3.2 屏幕适配的理解(cocos2dx屏幕适配解决方案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx 3.17,cocos2d屏幕适配,cocos2dx4.0教程,cocos2dx屏幕适配,cocos2dx设置窗口大小,cocos2dx屏幕适配解决方案,cocos2d屏幕适配,cocos2d屏幕适配,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在读《我所理解的cocos2dx》一书,感觉挺不错的,推荐一下,以下理解有不少地方受书中内容启发。 这里只写我自己理解的部分,基础部分如果有不懂的,请参考cocos2dx官方文档,写得也很详细。cocos2dx官方文档

设计分辨率与缩放策略

cocos2dx 通过设置设计分辨率来支持多屏幕分辨率适配,引擎底层会根据当前实际的屏幕分辨率通过相应的缩放策略处理设计分辨率的缩放。

对于EXACT_FIT, NO_BORDER,SHOW_ALL,三种缩放方式现在项目中用得比较少。EXACT_FIT会拉伸资源,NO_BORDER适用于设计分辨率与屏幕分辨率长宽比例一致的情况,有些项目是使用了多套设计分辨率以及多套资源来保证屏幕接近等比缩放。SHOW_ALL则会导致较窄一边出现黑边。这三种方式的优点是UI的位置在屏幕中一旦确定,就不需要随着屏幕分辨率的不同而更改。

对于这三种方式,设计分辨率就是绘制区域的大小,屏幕绘制的原点是设计分辨率对应区域的原点。当出现黑边的时候,黑边是在绘图区域之外的,程序无法直接在黑边上面绘制一些背景,广告什么的。之前有见过一篇文章是介绍如何在黑边上面绘制,但步骤比较麻烦一点,有兴趣可以搜索一下。

常用的缩放策略对于FIXED_WIDTH,FIXED_HEGITH,两种缩放策略是目前项目中用得最多的两个。可能是2.0版本以后新增的方式,上面官方的接口注释中并没有加上这两种方式的说明。刚接触到这两种方式时,以为只是SHOW_ALL的两种特殊情况,因为在使用同一套资源时,使用SHOW_ALL或者是FIXED_WIDTH(FIWXED_HEIGHT)时,表面看起来并没有什么区别,有黑边还是同样有黑边,但后来看了setDesignResolutionSize的实现源码:

可以看到,使用FIXED_WIDTH(FIXED_HEGITH)方式,在保证了长宽缩放比例一致的情况下,修改了设计分辨率的尺寸!

cocos2dx 3.2 屏幕适配的理解(cocos2dx屏幕适配解决方案)

修改设计分辨率会带来两方面的影响:1,屏幕中的UI元素的坐标改变了。例如FIXED_WIDHT时,当设计尺寸为*的时候,把一个元素放到中心点*的位置,随着屏幕实际分辨率的变化,这个元素可能已经不在中心点的位置,可能往上平移了。所以如果UI元素有跟背景位置相关联的时候,就不能直接写绝对坐标了,而是要使这个坐标&#;能够适应这种屏幕变化。2,绘制区域改变了。改变设计分辨率就意味着绘制区域的改变,如果资源的分辨率没有改变,并且这个资源是对齐到屏幕中心点位置,那么屏幕上下(或者左右)就会留有黑边。为什么会有黑边,因为绘制区域已经大于资源的分辨率了,例如FIXED_WIDTH时,设计尺寸和资源(一张背景图)分辨率都是*,屏幕分辨率是*,那么setDesignResolutionSize后,设计分辨率就变成了*,这张背景图放到屏幕中心点后,高度与设计分辨率差了,所以上下会有像素区域没有任何图像可以绘制的。这就造成了跟使用SHOW_ALL一样的效果,但实质上却是区别很大,SHOW_ALL的黑边不能绘制,FIXED_XXX的黑边只是因为资源分辨率不够,而没有被绘制。如果这时候,把这张资源分辨率换成*,就会发现没有黑边了。完美适配屏幕。使用FIXED_XXX需要注意的问题:

1,使用一张更大的背景图,例如当前设计分辨率是*,使用FIXED_WIDTH方式,想要适配主流屏幕,背景图至少需要使用*分辨率,4:3的屏幕应该是市场上长宽比最小的了。这样屏幕上下就不会有黑边存在。

2,尽量不使用绝对坐标,但如果元素的位置是跟屏幕底部有关,那也可以使用绝对坐标。例如游戏分为上,中,下三部分区域,下面的区域不变,如果屏幕高度变化了,中间的区域就相对拉大一点(具体也要跟设计背景图以及游戏本身表现有关)。这样的话,最下面部分的UI元素完全可以使用绝对坐标。同样,也可以使用屏幕中心点上下偏移多少坐标,来设置元素位置。

3,使用visibleSize,它返回的始终是根据当前设备分辨率调整的可视区域的分辨率。

4,如果还是想使用*来设计坐标&#;,可以写个宏来计算坐标的偏移量。根据当前可视区域的高度与设计尺寸(*,不是引擎修改后的尺寸)的高度比来计算元素在拉伸后的坐标。以上问题根据项目的实际情况选择,只是自己的见解,有不足的请再帮忙补充一下。

资源分辨率的缩放假如项目使用了*的资源分辨率和设计分辨率,结果后面发现包体太大。想要改用*分辨率的资源来降低包体大小。这时候,便可使用方法:设置资源的缩放因子。当缩放因子是1时,表示1像素的图片资源将占用1像素的设计分辨率。按照上述分辨率,应设置缩放因子为/=0.,即图片资源显示在屏幕上时1像素的资源要占用屏幕上将近2像素的分辨率。同时,资源的长度和宽度也会按比例拉伸,所以程序中需要依赖资源的contentSize来设置位置的时候,需要按照宽度或者高度的几分之几来设置。例如一张图片是*的,按照如上设置后,在程序中获取的宽度和高度可能是*了。 Texture2D的getContentSize方法将纹理的实际分辨率转化为了设计分辨率。另外,当使用LabelAtlas类,会在一张图片里存入0到9等字符,根据ASCII码用来显示游戏中的得分或者其他数字效果。这种是要依赖每个数字在图片中的区域。但是当这张图片被拉伸后,宽度有可能为浮点数,或者不能被里面的元素整除。这个时候,显示效果就会出现数字部分重叠。解决方法就是要把这张图片的分辨率设计成两者都可兼容的分辨率。

第一次发技术贴,请大家多指教,有问题一起讨论!

自动释放池是吗,是否可以这样模仿,超简单,嘿嘿 喵聊几cocos2dx3.2引擎关于自动释放池里面的源码,感觉也不过如此,不知是否理解正确,这篇文章也许不正确,但完全是出于个人的理解,我可不负什么

解决Android客户端运行Cococs2dx编写的游戏程序遇到的意外游戏中断导致的游戏黑屏问题 今天,在Android客户端运行的游戏,按HOME键,或者是意外终止游戏以后,再次返回游戏就会出现黑屏的问题,查找了好多资料,试验了好多办法,终于发

Cocos2dx -lua QuickXDev拓展 用cocos2d-x做开发的话,用的最多的开发语言就是c/lua了,而现在公司很多都比较看重开发速度,较多的公司都选择了lua作为开发语言,同时lua的热更新也

标签: cocos2dx屏幕适配解决方案

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

上一篇:cocos2dx移植到android碰到的问题(cocos2d转unity难吗)

下一篇:自动释放池是吗,是否可以这样模仿,超简单,嘿嘿(自动释放池原理,本质)

  • 解聘补偿金赔偿标准2023
  • 销售白酒是否要交消费税?
  • 一般纳税人企业所得税是多少
  • 一般纳税人一直零申报会降为小规模吗
  • 银行对账单放前面还是放后面
  • 预算收入包括增值税吗
  • 企业控股情况怎么填写
  • 季报申报之后还可以改吗?
  • 施工机械保险费属于什么费用
  • 将自制的一批新产品用于对外投资,生产成本为300000
  • 工程发票开多了怎么办
  • 三个月工资一次扣税多少
  • 公司发年终奖怎么发朋友圈
  • 单位房子没有房产证能不能买
  • 视频制作费属于劳务费吗
  • 股东租车给公司押金
  • 增值税进项和销项税的计算方法
  • 出租房屋房产税怎么算
  • 支付的专家费怎么入账
  • 外贸企业出口货物会计账务处理
  • 验旧作废发票遗失了如何验旧?
  • 取消票种核定需什么手续
  • 一般纳税人普通发票要交增值税吗
  • 如何理解总分机的概念
  • 享受免税的企业每月直接零申报吗
  • 收到应收票据应该确认收入吗
  • 基本户往一般户转账用途怎么写
  • Mail.app增强插件:Universal Mailer介绍
  • 未取得发票的工程预付款怎么入账
  • html页面间传数据
  • 资产收购的账务处理办法
  • 转让股权后公司资产
  • err03 failed to
  • php单链表使用场景
  • uniapp自定义导航栏渐变
  • 机器学习——感知机
  • 关联公司代缴社保会计处理
  • vue实现回车登录
  • phpcms 数据库配置文件
  • 运输途中发生的费用
  • 社保基数填错了 多扣多钱可以退款吗
  • 进项税额转出最后怎么处理
  • 提供劳务收入是指
  • dedecms怎么改图片
  • 百度 编辑器
  • 支付宝提取到公积金账户
  • 汽车的计提折旧
  • 公司被吊销营业执照的法律后果是什么?
  • sql server触发器实例
  • 外购材料并提供建筑服务
  • 损益类科目如何填写手工总账
  • 从银行取现金是什么凭证
  • 多计提的税款会计处理
  • 发生以下情况
  • 收派服务与快递服务区别
  • 资产处置收益和资产减值损失区别
  • 银行卡转账怎么撤回转账的钱
  • 赊销是什么意思 视频
  • mysql5.7闪退
  • sqlserver完全删除
  • MSsql每天自动备份数据库并每天自动清除log的脚本
  • windowsxp网页打不开怎么办
  • win10系统光盘制作
  • windows xp 开机
  • mac系统怎么把文件移到文件夹
  • windows开始界面
  • linux临时修改编码
  • win7系统检测
  • echarts怎么用
  • linux里面vim
  • cocos2dx3.2 xcode中资源路径设置问题
  • 着色器模型
  • android ios UI
  • python脚本运行命令
  • 安卓手机管家下载
  • javascript模块化与非模块化开发区别
  • 汽车购置税退税需要多长时间
  • 消费税是含税价
  • 贵州电子税务总局
  • 重庆两江新区购房政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设