CocosCreator 面试题(十七)Cocos creator 固定宽度与固定高度的底层原理是什么?Cocos creator是如何做适配的?


一、Cocos creator 固定宽度与固定高度的底层原理


在 Cocos Creator 中,固定宽度和固定高度是两种常见的适配方式,用于在不同屏幕尺寸上保持游戏画面的一致性。它们的底层原理如下:


1、固定宽度适配

固定宽度适配的目标是在不同屏幕宽度上保持游戏画面的一致性。底层原理如下:

  • 游戏设计时基于一个固定的宽度进行布局和渲染,通常称为「设计宽度」。
  • 在游戏初始化阶段,通过获取设备的屏幕宽度,计算出一个缩放比例,将设计宽度缩放到设备的实际宽度上。
  • 将游戏画面按照缩放比例进行缩放,保持宽度的一致性。高度会根据缩放比例等比例缩放,以保持画面的纵横比不变。
  • 使用相对坐标和布局方式,确保游戏中的元素在不同屏幕尺寸上正确定位和显示。

2、固定高度适配

固定高度适配的目标是在不同屏幕高度上保持游戏画面的一致性。底层原理如下:

  • 游戏设计时基于一个固定的高度进行布局和渲染,通常称为「设计高度」。
  • 在游戏初始化阶段,通过获取设备的屏幕高度,计算出一个缩放比例,将设计高度缩放到设备的实际高度上。
  • 将游戏画面按照缩放比例进行缩放,保持高度的一致性。宽度会根据缩放比例等比例缩放,以保持画面的纵横比不变。
  • 使用相对坐标和布局方式,确保游戏中的元素在不同屏幕尺寸上正确定位和显示。

通过固定宽度或固定高度的适配方式,可以使游戏在不同屏幕尺寸上保持一定的一致性,确保游戏中的元素的大小和位置相对稳定。具体选择哪种适配方式取决于你的游戏需求和设计考虑。在 Cocos Creator 中,你可以通过设置「设计分辨率」和使用相对坐标和布局方式来实现固定宽度或固定高度的适配。


二、Cocos creator如何做适配?


Cocos Creator 提供了多种适配方式,用于在不同屏幕尺寸上保持游戏画面的一致性。下面介绍 Cocos Creator 中常用的适配方式和相应的配置方法:

  1. 固定宽度适配
    • 在 Cocos Creator 编辑器中,选择「项目设置」窗口。
    • 在「分辨率」选项卡中,选择「固定宽度适配」。
    • 设置设计分辨率的宽度,这是游戏设计时使用的固定宽度。
    • 在代码中,可以通过 cc.view.getFrameSize().width 获取屏幕宽度,并使用缩放比例将设计宽度缩放到设备宽度上。

  1. 固定高度适配
    • 在 Cocos Creator 编辑器中,选择「项目设置」窗口。
    • 在「分辨率」选项卡中,选择「固定高度适配」。
    • 设置设计分辨率的高度,这是游戏设计时使用的固定高度。
    • 在代码中,可以通过 cc.view.getFrameSize().height 获取屏幕高度,并使用缩放比例将设计高度缩放到设备高度上。

  1. 自适应适配
    • 在 Cocos Creator 编辑器中,选择「项目设置」窗口。
    • 在「分辨率」选项卡中,选择「自适应适配」。
    • 设置设计分辨率的宽度和高度,这是游戏设计时使用的分辨率。
    • 在代码中,可以使用相对坐标和布局方式,使用百分比或比例来定位和缩放游戏中的元素,以适应不同屏幕尺寸。

  1. 其他适配方式
    • Cocos Creator 还提供了其他适配方式,如填充适配、裁剪适配等,可以根据具体需求进行选择和配置。

除了选择适配方式,你还可以使用 Cocos Creator 提供的 UI 组件和布局系统来实现自适应布局。例如,使用 cc.Widget 组件来设置节点的锚点、边距、对齐方式等,以适应不同屏幕尺寸。


总之,Cocos Creator 提供了多种适配方式和工具,帮助你在不同屏幕尺寸上保持游戏画面的一致性。选择适当的适配方式,并结合 UI 组件和布局系统,可以实现灵活而精确的适配效果。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一个mqtt错误

在vue-admin-template 中引入mqtt 安装不报错,引入试过 import mqtt from mqtt import * as mqtt from mqtt/dist/mqtt.min; import {connect} from mqtt 一直报错: 就表示不理解,网上也没查到相应的资料,请告诉我我不是第一个遇…

FTP服务器搭建

1.FTP服务器概述 FTP服务器(File Transfer Protocol Server)是一种提供文件传输服务的服务器。FTP是一种标准的网络协议,用于在计算机之间进行文件传输。FTP服务器允许用户通过FTP协议上传、下载、删除和管理文件,从而使文件在不同…

【面经八股】搜广推方向:面试记录(三)

【面经&八股】搜广推方向:面试记录(三) 文章目录 【面经&八股】搜广推方向:面试记录(三)1. 编程题1.1 大数乘法1.2 大数加法2. 项目介绍3. 有了解过的广告推荐模型吗4. 广告模型回归问题1. 编程题 上来直接写编程题,有点儿懵逼。 1.1 大数乘法 可以参考 该博…

初学vue3与ts:朕与太子的props、emit互动

父页面(index-props) <!-- 父子组件互动 --> <template><div class"flex"><div class"props-item"><div class"index-title">皇帝:</div><div class"flex a-c mt-20"><div class"…

如何在Node.js和Express中设置TypeScript(2023年)

如何在Node.js和Express中设置TypeScript&#xff08;2023年&#xff09; 在这篇文章中&#xff0c;我们将介绍在Express应用程序中设置TypeScript的最佳方法&#xff0c;了解与之相关的基本限制。 文章目录 如何在Node.js和Express中设置TypeScript&#xff08;2023年&#x…

中国城市数字经济发展对环境污染的影响及机理研究(2011-2021年)

参照张翱祥&#xff08;2022&#xff09;的做法&#xff0c;本团队对来自南方经济《中国城市数字经济发展对环境污染的影响及机理研究》一文中的基准回归部分进行复刻 参考赵涛&#xff08;2020&#xff09;计算&#xff0c;PM2.5根据Atmospheric Composition Analysis Group计…

案例033:基于微信小程序的商品展示系统设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

828. 统计子串中的唯一字符 --力扣 --JAVA

题目 我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符&#xff0c;并返回唯一字符的个数。 例如&#xff1a;s "LEETCODE" &#xff0c;则其中 "L", "T","C","O","D" 都是唯一字符&#xf…

巴菲特清仓Paytm,亏损62亿卢比

KlipC报道&#xff1a;伯克希尔哈萨韦清仓其在印度“支付宝”Paytm的股份。 KlipC的合伙人Andi D表示&#xff1a;“据公开资料显示&#xff0c;伯克希尔.哈萨韦于2018年斥3亿美元巨资收购Paytm2.6%的股份&#xff0c;沃伦巴菲特公司于2021年出售Paytm 价值3600万美元的股份&am…

ConcurrentHashMap底层原理以及它 为什么是线程安全的,底层具体实现

文章目录 ConcurrentHashMap 为什么是线程安全的&#xff1f;ConcurrentHashMap 底层具体实现知道吗&#xff1f;实现原理是什么&#xff1f;ConcurrentHashMap 的整体架构**ConcurrentHashMap 的基本功能**ConcurrentHashMap 在性能方面做的优化** 今天来和大家谈谈&#xff0…

卡码网语言基础课 | 14. 链表的基础操作Ⅱ

题目&#xff1a; 构建一个单向链表&#xff0c;链表中包含一组整数数据&#xff0c;输出链表中的第 m 个元素&#xff08;m 从 1 开始计数&#xff09;。 要求&#xff1a; 1. 使用自定义的链表数据结构 2. 提供一个 linkedList 类来管理链表&#xff0c;包含构建链表、输出…

【多属性对象“{a:1,b:2}”】与【单属性对象的数组“[{a:1},{b:2}]”】的相互转换

前端开发的某些场景&#xff08;比如用echarts开发某些可视化图表&#xff09;经常需要将【多属性对象&#xff0c;如“{a:1,b:2}”】与【单属性对象的数组&#xff0c;如“[{a:1},{b:2}]”】做相互转换&#xff0c;以下是不通过循环&#xff0c;简洁实现这种转换的方法&#x…

支持向量机的算法原理

支持向量机&#xff08;Support Vector Machine&#xff0c;简称SVM&#xff09;是机器学习领域中一种常用的分类算法&#xff0c;它基于统计学习理论和结构风险最小化原则&#xff0c;具有很强的理论基础和良好的分类性能。本文将详细介绍支持向量机的算法原理&#xff0c;并解…

【C语言】优化通讯录管理系统2

本篇博客是基于上一篇博客写出来的&#xff0c;了解上一篇博客 大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家再次优化上一篇的通讯录&#xff0c;实现将录入的数据在程序退出后存储到文件中&#xff0c;在下一次程序开始时打开文件获取数据&#xff0c;如果你觉得我写…

好用到难以置信的全域BI:揭秘店铺服务从优秀到卓越的3个办法

双11刚结束&#xff0c;一些平时易忽略的问题被放大出来&#xff0c;发现问题不可怕&#xff0c;可怕的是无视。如果您还没想好接下来怎么调整&#xff0c;本篇介绍的「全域BI-服务」定会给您一些思路。 过往&#xff0c;传统客服服务的管理仍停留于人工操作阶段&#xff0c;企…

冯·诺依曼体系结构和操作系统

目录 一、冯诺依曼体系结构 1、初见结构 2、对体系结构的理解 3、总结 二、操作系统 1、概念 2、作用 一、冯诺依曼体系结构 1、初见结构 数学家冯诺依曼提出了计算机制造的三个基本原则&#xff0c;即采用二进制逻辑、程序存储执行以及计算机由五个部分组成&#xff08…

在 Next 14 的 appRouter 模式中接入 React-Redux

在 Next 14 的 appRouter 模式中接入 React-Redux 说明 Next.js 版本升级到 14 后&#xff0c;相比 13 版本是一个改动很大的大版本升级&#xff0c;很多概念或者使用方式 13 版本都有较大的区别&#xff0c;因此这里记录一些学习 14 版本的 Next.js 的心得体会或者问题。因为…

LeetCode491. Non-decreasing Subsequences

文章目录 一、题目二、题解 一、题目 Given an integer array nums, return all the different possible non-decreasing subsequences of the given array with at least two elements. You may return the answer in any order. Example 1: Input: nums [4,6,7,7] Output…

sqli-labs(5)

23. 判断是注释符被过滤了我们用‘1’‘1来闭合后面的’ 这里不能使用order by来判断列数直接通过union select来判断 -1 union select 1,2,3 and 11 -1 union select 1,(select group_concat(table_name) from information_schema.tables where table_schemasecurity) ,3 an…

如何使用cpolar+Jellyfin自建私人影音平台【内网穿透】

&#x1f3a5; 个人主页&#xff1a;深鱼~ &#x1f525;收录专栏&#xff1a;cpolar &#x1f304;欢迎 &#x1f44d;点赞✍评论⭐收藏 文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpo…