【CocosCreator入门】CocosCreator组件 | Layout(布局)组件

news2025/1/14 19:30:24

       Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中的Layout组件是一种用于实现节点自适应布局的重要组件。它可以根据不同的布局方式,自动调整子节点的位置和大小,从而实现节点的自适应布局。


目录

一、组件介绍

二、组件属性

三、布局类型

四、脚本示例


一、组件介绍

       Layout组件是Cocos Creator提供的一种自适应布局组件,主要用于实现节点的自适应布局和排列。通过设置Layout组件的属性和布局方式,可以实现各种不同的布局效果,例如水平布局、垂直布局和网格布局等。 

二、组件属性

属性功能说明
Type布局类型,支持 NONE、HORIZONTAL、VERTICAL 和 GRID。
Resize Mode缩放模式,支持 NONE,CHILDREN 和 CONTAINER。
Padding Left排版时,子物体相对于容器左边框的距离。
Padding Right排版时,子物体相对于容器右边框的距离。
Padding Top排版时,子物体相对于容器上边框的距离。
Padding Bottom排版时,子物体相对于容器下边框的距离。
Spacing X水平排版时,子物体与子物体在水平方向上的间距。NONE 模式无此属性。
Spacing Y垂直排版时,子物体与子物体在垂直方向上的间距。NONE 模式无此属性。
Horizontal Direction指定水平排版时,第一个子节点从容器的左边还是右边开始布局。当容器为 Grid 类型时,此属性和 Start Axis 属性一起决定 Grid 布局元素的起始水平排列方向。
Vertical Direction指定垂直排版时,第一个子节点从容器的上面还是下面开始布局。当容器为 Grid 类型时,此属性和 Start Axis 属性一起决定 Grid 布局元素的起始垂直排列方向。
Cell Size此属性只在 Grid 布局、Children 缩放模式时存在,指定网格容器里面排版元素的大小。
Start Axis此属性只在 Grid 布局时存在,指定网格容器里面元素排版指定的起始方向轴。
Affected By Scale子节点的缩放是否影响布局。

三、布局类型

       Layout组件是Cocos Creator中非常重要的一个组件,它可以帮助开发者更加方便地布局游戏场景中的UI元素。Layout组件支持多种布局类型,包括水平布局、垂直布局、网格布局等等。本文将介绍Layout组件的几种布局类型及其使用方法。

  • 水平布局

       水平布局是一种将UI元素水平排列的布局方式。在Cocos Creator中,可以通过将Layout组件的布局类型设置为Horizontal来实现水平布局。在水平布局中,可以通过设置各个UI元素的间距、对齐方式等属性来控制UI元素的排列方式。

  • 垂直布局

       垂直布局是一种将UI元素垂直排列的布局方式。在Cocos Creator中,可以通过将Layout组件的布局类型设置为Vertical来实现垂直布局。在垂直布局中,可以通过设置各个UI元素的间距、对齐方式等属性来控制UI元素的排列方式。

  • 网格布局

       网格布局是一种将UI元素排列成网格状的布局方式。在Cocos Creator中,可以通过将Layout组件的布局类型设置为Grid来实现网格布局。在网格布局中,可以通过设置每行或每列的元素数量、各个UI元素的间距、对齐方式等属性来控制UI元素的排列方式。

  • 绝对布局

       绝对布局是一种将UI元素按照固定位置进行排列的布局方式。在Cocos Creator中,可以通过将Layout组件的布局类型设置为Absolute来实现绝对布局。在绝对布局中,可以通过设置各个UI元素的位置、大小等属性来控制UI元素的排列方式。

四、脚本示例

       下面是一个使用Layout组件实现自适应布局的示例代码:

cc.Class({
    extends: cc.Component,
    properties: {
        layoutNode: cc.Node, // 布局节点
        childNodes: [cc.Node], // 子节点列表
        layoutType: cc.Layout.Type.HORIZONTAL, // 布局方式
        resizeMode: cc.Layout.ResizeMode.CONTAINER, // 自适应方式
        padding: cc.Vec4(10, 10, 10, 10), // 间距
        horizontalAlign: cc.Layout.HorizontalAlign.CENTER, // 水平对齐方式
        verticalAlign: cc.Layout.VerticalAlign.CENTER, // 垂直对齐方式
    },
    onLoad () {
        let layout = this.layoutNode.getComponent(cc.Layout);
        layout.type = this.layoutType;
        layout.resizeMode = this.resizeMode;
        layout.padding = this.padding;
        layout.horizontalAlign = this.horizontalAlign;
        layout.verticalAlign = this.verticalAlign;
        this.childNodes.forEach((childNode) => {
            let childLayout = childNode.getComponent(cc.Layout);
            if (childLayout) {
                childLayout.enabled = true;
                childLayout.horizontalAlign = this.horizontalAlign;
                childLayout.verticalAlign = this.verticalAlign;
            }
        });
    },
    // update (dt) {},
});

       通过以上代码,我们可以动态地创建一个布局节点,并添加Layout组件和子节点。在实际开发中,可以根据需要修改和扩展代码。


       总之,使用Cocos Creator的Layout组件可以帮助我们快速实现节点的自适应布局。通过设置布局方式、自适应方式和子节点属性,可以让节点在不同的屏幕尺寸和分辨率下都能够自适应排布。

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

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

相关文章

准备换工作的看过来~

大家好,最近有不少小伙伴在后台留言,得准备面试了,又不知道从何下手!为了帮大家节约时间,特意准备了一份面试相关的资料,内容非常的全面,真的可以好好补一补,希望大家在都能拿到理想…

运行时内存数据区之方法区(二)

方法区的演进细节 首先明确:只有HotSpot才有永久代。BEA JRockit、IBMJ9等来说,是不存在永久代的概念的。原则上如何实现方法区属于虚拟机实现细节,不受《]Va虚拟机规范》管束,并不要求统一。Hotspot中方法区的变化: …

Spring核心-IoC控制反转详解 (典藏版)

文章目录 1.IoC容器和Bean介绍2.Spring 中的 IoC 容器2.1 BeanFactory和ApplicationContext概述2.2 BeanFactory2.3 ApplicationContext2.4 BeanFactory vs ApplicationContext2.5 容器的初始化2.6 配置元数据2.6.1 基于XML的容器配置2.6.2 基于注解的容器配置2.6.3 基于Java类…

Junit概述和快速入门

单元测试概述 在程序中,一个单元可以是一个完整的模块,但它通常是一个单独的方法或者程序 在面向对象的编程中,一个单元通常是整个界面,例如类,但可能是单个方法 JUnit是一个java编程语言的单元测试框架 通过先为最…

教育大数据总体解决方案(4)

组件配置 对组件中的项目配置项进行管理,包括节点内容、磁盘空间等等。每一次的配置都以一个配置版本的形式进行保存,用户可选择对应版本的查看对应的配置信息。 测度 对组件内的相关服务指标以图标形式进行状态呈现。可选择相应时间段,查看对…

scala闭包与柯里化

目录 通过闭包实现一个通用的两数相加函数简化柯里化 闭包:如果一个函数,访问到了它的外部(局部)变量的值,那么这个函数和他所处的环境,称为闭包 通过闭包实现一个通用的两数相加函数 这里内层函数访问了外…

【基础】Kafka -- 主题与分区

Kafka -- 主题与分区 主题的管理创建主题简单创建与查看指定分区副本分配创建指定参数创建 查看主题主题的简单查看带附加功能的查看 修改主题修改分区修改配置 删除主题 主题配置管理配置查看与变更配置查看配置变更 主题端参数 KafkaAdminClient 主题管理基本使用创建主题查看…

【创作赢红包】SQL Server之索引设计

SQL Server之索引设计 一、前言二、索引设计背景知识2.1、索引设计策略包括的任务 三、常规索引设计3.1、数据库注意事项3.2、查询注意事项3.3、列注意事项3.4、索引的特征3.5、索引排序顺序设计指南 总结 一、前言 索引设计不佳和缺少索引是提高数据库和应用程序性能的主要障…

【Spring Data Jpa】原生Jpa的使用

【Spring Data Jpa】原生Jpa的使用 1. Dependency2. Config1.1 persistence.xml1.2 Entity1.3 application.properties 3. Test4. 原生JdbcTemplate 5. Awakening 1. Dependency <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-e…

本地连接github

本地连接github 想要通过github把本地代码同步一下&#xff0c;但是每次换一个电脑都要重新搜索如何配置连接github&#xff0c;趁着这次机会把电脑配置的时候记录一下&#xff0c;到时候找起来方便一点 一、git环境配置 1、首先安装git 找个安装包直接安装就行 2、配置用…

跨越行业壁垒:金融校对软件在跨国金融业务中的应用

随着全球金融市场的融合和跨国金融业务的快速发展&#xff0c;金融专业人士需要处理不同语言、文化和法规背景下的金融文档。金融校对软件在这一领域发挥着至关重要的作用&#xff0c;为跨国金融业务提供有力支持。本文将探讨金融校对软件在跨国金融业务中的应用。 一、跨语言支…

【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【工具】使用VS Code调试Docker Container中的代码

目录 使用VS Code调试Docker Container中的Autoware.ai代码第一种方法 -- 在VS Code中进行DebugStep1Step2Step3Step4c_cpp_properties.jsonlaunch.jsonsettings.jsontask.json Step5Step6Step7参考链接 第二种方法 -- cmake重新编译cmake使用方法&#xff08;简介&#xff09;…

SPARQL endpoint with Ontop CLI部署,python使用SPARQLWrapper

Ontop CLI部署&#xff0c;避免踩坑 0.前言1.提示2.详细部署流程3.python操作4.碎碎念 0.前言 教程&#xff1a;Setting up an Ontop SPARQL endpoint with Ontop CLI照着教程来&#xff0c;不知道为啥&#xff0c;总是报错&#xff0c;后来发现&#xff0c;手机搜到的跟电脑不…

Mybatis模糊查询——三种定义参数方法和聚合查询、主键回填

目录 相关导读 一、使用#定义参数 1. 持久层接口添加根据名字内容模糊查询方法 2. UserMapper.xml映射文件添加标签 3. 添加测试方法 4. 运行结果 二、使用$定义参数 1. UserMapper.xml映射文件更改标签内容 2. 修改测试方法 3. 运行结果 三、使用标签定义参数 1. …

JavaWeb开发 —— MyBatis入门

目录 一、快速入门程序 二、配置SQL提示 三、JDBC 四、数据库连接池 五、lombok工具包 MyBatis是一款优秀的 持久层Dao层 框架&#xff0c;用于简化JDBC的开发。 MyBatis本是 Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了 google code&#xff0c;并且改…

企业为什么都需要产品手册?

随着科技的不断发展和市场竞争的日益激烈&#xff0c;企业在推广和销售产品时需要给客户提供更多的信息和保障&#xff0c;而产品手册就成为了必不可少的工具之一。本文将从以下几个方面详细介绍企业为什么都需要产品手册。 产品手册的定义和作用 产品手册是一本介绍企业产品…

【C++初阶】:指针空值nullptr

指针空值nullptr 一.空指针二.空指针nullptr 一.空指针 在良好的C/C编程习惯中&#xff0c;声明一个变量时最好给该变量一个合适的初始值&#xff0c;否则可能会出现不可预料的错误&#xff0c;比如未初始化的指针。如果一个指针没有合法的指向&#xff0c;我们基本都是按照如下…

无人机巡检智能一体化解决方案

随着无人机技术的不断发展&#xff0c;无人机应用领域已经越来越生活化&#xff0c;其产品不仅在军事、商业等领域得到了广泛应用&#xff0c;也在普通人的生活中得到了广泛应用。无人机的自动巡检是无人机应用的一个重要方向&#xff0c;具有广阔的发展前景&#xff0c;本文将…

太阳的G2

我已经忘记是怎么喜欢上保罗的 入职腾讯的第一天&#xff0c;同事看到我的英文名cris&#xff0c;就笃信我应该是保罗的球迷。 是的&#xff0c;我是保罗的球迷「当然&#xff0c;不只是保罗的球迷」。 14-15赛季&#xff0c;保罗在的快船跟马刺鏖战7场&#xff0c;硬是在第7场…