CocosCreator 面试题(十一)Cocos Creator 屏幕适配


Cocos Creator 提供了多种屏幕适配的方式,以确保游戏在不同设备上能够正确显示和布局。

以下是 Cocos Creator 中常用的屏幕适配方式及其说明。


1、 Cocos Creator 项目设置中统一配置设计分辨率和屏幕适配

在同一个项目里的多个 Canvas 的设计分辨率仍然采用同一套设计分辨率以及适配方案。

可以通过 项目 -> 项目设置 -> 项目数据 页面配置。

在这里插入图片描述


  • 设计宽度、高度:主要设置游戏设计分辨率的尺寸,根据实际情况进行配置。
  • 适配屏幕高度:固定高度。
  • 适配屏幕宽度:固定宽度。

以下是详细适配方案:

(1)、等比显示整个场景内容(showAll)

在Creator上同时勾选适配屏幕高度适配屏幕宽度即可开启showAll适配模式。

在这里插入图片描述


这个适配方案的优点是不管屏幕比例如何,保证整个场景都是可见的,而且等比适配,但是总是在左右两边或者上下两边出现黑边。


(2)、NO_BORDER(等比拉伸到全屏)

和SHOW_ALL相反,在Creator上同时去除 适配屏幕高度适配屏幕宽度 的勾选即可开启 NO_BORDER 适配模式。

这个适配模式是根据屏幕比例等比拉伸画面,有两种结果:

  • 当高度拉满,宽度超出屏幕的时候,裁切宽度。
  • 当宽度拉满,高度超出屏幕的时候,裁切高度。

在这里插入图片描述


它的优点:是没有黑边

它的缺点:是在不同的屏幕比例上,不能确定到底是宽度裁切还是高度裁切

所以进行场景设计的时候有挺大局限性


(3)、FIXED_HEIGHT(等比拉伸高度到全屏)

在横屏模式下,通常设置适配方案为固定高度,这也是Creator默认的适配方案。

在Creator中,只勾选Canvas组件的适配屏幕高度即可开启FIXED_HEIGHT适配模式。

在这里插入图片描述


它的优点是:

可以实现全屏,拉伸或者缩放高度为屏幕高度,宽度进行裁切。


### **(4)、FIXED_WIDTH(等比拉伸宽度到全屏)**

在竖屏模式下,通常设置适配方案为固定宽度。

在Creator中,只勾选Canvas组件的适配屏幕宽度即可开启FIXED_WIDTH适配模式。


在这里插入图片描述


2、代码中完成设计分辨率设置和屏幕适配设置

// 设置设计分辨率
cc.view.setDesignResolutionSize(960, 640, cc.ResolutionPolicy.FIXED_WIDTH);

// 获取设计分辨率
const designSize = cc.view.getDesignResolutionSize();
console.log('Design resolution:', designSize.width, designSize.height);
```
在上述示例中,设置设计分辨率为 960x640,并使用 `cc.ResolutionPolicy.FIXED_WIDTH` 适配模式。这意味着游戏画面将根据宽度进行等比缩放。

通过设置设计分辨率和屏幕适配以后,还需要通过多个部分的工作来配合,才能完美适配。


3、以下四个部分完成多分辨率适配

  • Canvas(画布) 组件随时获得设备屏幕的实际分辨率并对场景中所有渲染元素进行适当的缩放。
  • Widget(对齐挂件) 组件添加给 UI 节点,能够根据需要将元素对齐目标节点(默认是父节点)的不同参考位置。
  • Label(文字) 组件内置了提供各种动态文字排版模式的功能,当文字的约束框由于 Widget 对齐要求发生变化时,文字会根据需要呈现完美的排版效果。
  • Sliced Sprite(九宫格精灵图) 则提供了可任意指定尺寸的图像,同样可以满足各式各样的对齐要求,在任何屏幕分辨率上都显示高精度的图像。

以上是常用的屏幕适配方式,可以根据游戏的需求选择适合的方式。适配的目的是确保游戏在不同设备上能够正确显示,并提供良好的用户体验。



http://www.niftyadmin.cn/n/5087975.html

相关文章

最新版nacos 2.2.3服务注册与发现版本依赖问题

最新版nacos的注册服务时配置文件写的是对的,但就是在nacos web页面无法看见服务,此时你需要注意你的依赖是否正确 spring: application:name: orderservicecloud:nacos:discovery:server-addr: 122.51.115.127:8848父工程依赖:现在最新的s…

利用 Amazon CodeWhisperer 激发孩子的编程兴趣

我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。 我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你…

【Unity实战100例】Unity内部软键盘输入制作

目录 一. 样式颜色设置 二. UI逻辑 源码地址: 哔哩哔哩工房 一. 样式颜色设置 可以在预制体上提前设置一下对应组件的颜色,包括按键边框的颜色,内部填充色,普通按键文本颜色,功能按键文本颜色,大家可以根据自己的需求处理按钮逻辑。

关于智能控制领域中模糊控制算法的概述

智能控制领域中的模糊控制算法是一种基于模糊逻辑的控制策略,它通过对模糊集合的刻画来处理模糊信息,从而获得模糊输出并进行控制。模糊控制算法在实际控制工程中具有良好的应用前景,它不但具有较强的鲁棒性和适应性,而且可以为复…

【PostgreSQL启动,停止命令(重启)】

找到 /usr/lib/systemd/system文件夹路径看是否包含 postgresql服务 关闭服务: systemctl stop postgresql-12.service启动服务 systemctl start postgresql-12.service重启服务 systemctl restart postgresql-12查看状态 systemctl status postgresql-12.servi…

【EI会议征稿】第三届机械、建模与材料工程国际学术会议(I3ME 2023)

第三届机械、建模与材料工程国际学术会议(I3ME 2023) 2023 3rd International Conference on Mechanical, Modeling and Materials Engineering 第三届机械、建模与材料工程国际学术会议(I3ME 2023)将于2023年12月1-3日在中国长春…

Python学习基础笔记六十五——布尔值

布尔对象: Python中有一种对象类型称之为布尔对象(英文叫bool)。 布尔对象只有两种取值,True和False。对应的是真和假,或者说是和否。True对应的是,False对应的是否。 我觉得这句话是一个关键&#xff1a…

LoRa技术未来发展前景:物联网和边缘计算的引领者

随着物联网和边缘计算的快速发展,低功耗广域网(LoRa)技术在连接远距离设备、实现长距离通信和满足低功耗需求方面崭露头角。本文将分析LoRa技术在未来的发展前景,尤其是在物联网和边缘计算领域的潜在影响。 LoRa技术的核心优势 1…