cocos creator从零开发简单框架(02)-层级管理

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

新建framework/scripts/AppConstants.ts,内容如下。目前有3个层级,数值大的层级会显示在数值小的层级上面,中间间隔100可以让用户使用代码在中间动态插入自定义的层级。

export default class AppConstants {
    // View 层级
    public static readonly viewLayer = {
        // UI
        UI: 100,
        // 面板
        Panel: 200,
        // 顶层
        Top: 900,
    }
}

新建framework/scripts/AppUtil.ts,这个脚本是一些常用的函数,供框架内部和用户使用,内容如下。

export default class AppUtil {
    /**
     * 添加对齐组件(默认铺满父节点)
     * @param node 要添加对齐组件的节点
     * @param target 对齐目标(不设置默认父节点)
     */
    public static setWidget(node: cc.Node, target: cc.Node = null, top: number = 0, bottom: number = 0, left: number = 0, right: number = 0) {
        if (node.getComponent(cc.Widget)) return

        const widget = node.addComponent(cc.Widget)

        if (target) widget.target = target

        widget.isAlignTop = true
        widget.isAlignBottom = true
        widget.isAlignLeft = true
        widget.isAlignRight = true

        widget.top = top
        widget.bottom = bottom
        widget.left = left
        widget.right = right
    }
}

新建framework/scripts/view/LayerMgr.ts,内容如下。

import AppConstants from "../AppConstants"
import AppUtil from "../AppUtil"


export default class LayerMgr {
    // 层级及对应节点
    private static _layerMap: Map<number, cc.Node> = new Map()

    private static _zIndex: number = 0


    // 初始化层级
    public static init() {
        // 框架初始化和切换场景后都会调用, 所以要清除之前的数据
        this._layerMap.clear()

        for (const name in AppConstants.viewLayer) {
            const value = AppConstants.viewLayer[name] as number
            this.newLayer(name, value)
        }
    }

    /**
     * 创建新层级
     * @param name 层级名称
     * @param value 层级 zIndex
     * @returns
     */
    public static newLayer(name: string, value: number) {
        let layer = cc.Canvas.instance.node.getChildByName(name)
        if (layer) return

        layer = new cc.Node(name)
        layer.parent = cc.Canvas.instance.node
        layer.zIndex = value

        // 挂载 Widget 组件, 保持跟 Canvas 一样大小
        AppUtil.setWidget(layer)

        this._layerMap.set(value, layer)
    }

    /**
     * 为节点设置层级父节点并把节点显示在最上层
     * @param node 节点
     * @param layer 层级
     */
    public static setLayer(node: cc.Node, layer: number) {
        const layerNode = this._layerMap.get(layer)
        if (!layerNode) {
            console.error(`LayerMgr.setLayer layer[${layer}] 不存在`)
            return
        }

        if (!node.parent) {
            node.parent = layerNode
        }

        node.zIndex = this._zIndex++
    }
}
Cocos Creator 极速入门 课程亮点 紧扣最新版特性解读,比官方文档更详实 官方范例源码解析,实战中掌握功能用法 实操个人游戏项目,由理论进阶实践应用 走通研发完整流程,快速上手 H5、小游戏开发 专家推荐 该课程对 Cocos Creator 官方实例工程做了详尽解说,并从作者多年引擎开发经验的角度,深入分析了其中的技术要点。对于想要快速掌握 Cocos Creator 功能用法的开发者,这是一个很不错的参考资料。 —... 阅读详情

相关推荐

到一:前端开发者学习 Cocos Creator 的全攻略

Cocos Creator 是基于 Cocos2d-x 引擎的游戏开发工具,它的核心是使用 JavaScript/TypeScript 进行开发。这对于前端开发者来说,是个非常有优势的工具,因为大部分前端开发者都已经熟悉 JavaScript。Cocos Creator 支持 2D 和 3D 游戏的开发,具备直观的界面设计、场景编辑器以及丰富的组件系统,极大地提高了开发效率。

我们一起学前端 3866

Cocos Creator 笔记

简单Cocos Creator的笔记,记录了CocosCreator,JavaScript,和Node.js三部分笔记。

Cocos Creator开发学习路线

cocos creator开发学习路线

upgrade_bro的博客 1838

cocoscreator设置层级zIndex使用注意事项

node.zIndex=1; 值越大越在上层。按需赋值即可。 在制作滑动/滚动页面时用起来比较方便。 核心注意事项:在同一节点下,设置子节点的zIndex时,会改变节点顺序。假如读取node.children时,子节点顺序会因为设置的zIndex而改变。假如需要读取子节点 的话,建议另外拿一个节点数组存放第一次进入场景时的节点,后期使用这个数组即可。 ...

qq_40065163的博客 7960

CocosCreator 随笔记录

这将会是一个逐步更新的内容,用于记录各种想法。

addas0的博客 1296

17 CoCos Creator-Node Tree 层级管理

0. 原文 https://docs.cocos.com/creator/manual/zh/getting-started/basics/editor-panels/node-tree.html 1. Node Tree 层级管理层级管理器 中包括当前打开场景中的所有节点,不管节点是否包括可见的图像。你可以在这里选择、创建和删除节点,也可以通过拖拽一个节点到另一个上面来建立节点父子关系。 点...

苏法迪的专栏 2906

cocos 修改层级_cocos creator 场景如何透明,多个canvas层级显示

经过多次实验,Canvas模式下,cc.game.run(option, onStart);之前cc.macro.ENABLE_TRANSPARENT_CANVAS = true;成功露出了cocos 自带的Canvas下的其他dom元素在WebGL模式下,渲染层级在最上面的Node需要开启opacity = 1,同时设置则此node内的范围都会露出底层的其他dom元素,同时node之外的内容被裁...

weixin_39525097的博客 1082

cocos 修改层级_day01 cocos2d-x框架模式,层级关系,添加精灵

1.Cocos2d-x框架模式CCDirector->CCScene->CCLayer->CCSprite, 一级一级衔接.2. applicationDidFinishLaunching是作为游戏程序的主要起始口3.我们编程主要是编写层,也就是CCLayer这一层.CCLayer的代码模版为#include “cocos2d.h”USING_NS_CC;Class myLaye...

weixin_30074763的博客 855

cocos creator 游戏框架

新手小白了解游戏框架

qq_47132211的博客 5477

Cocos Creator入门教学(全而简单版)

摘要:作者利用周末时间学习使用CocosCreator游戏引擎开发一款2D横板竞速游戏《战士勇敢向前冲》。文章详细记录了从引擎安装(选择2D模板)、界面介绍(层级/资源/场景编辑器等),到实现角色移动功能的全过程:导入自制角色素材,创建控制脚本绑定方向键操作,并通过代码实现像素级移动。作为国产开源引擎,CocosCreator支持中英文切换,适合新手入门2D/3D游戏开发

前方的路在刚开始 9112

全面升级的Cocos Creator游戏开发框架:Beyond

Cocos Creator作为一款全面支持2D和3D游戏开发的游戏引擎,它在近年来成为游戏开发者的新宠儿。它提供了跨平台支持,使得游戏能够在不同操作系统中无差异运行。同时,它的脚本系统强大而灵活,支持TypeScript、JavaScript和C#等语言,让开发者能以熟悉的编程习惯创作游戏。

weixin_42591413的博客 1103

Cocos Creator引擎开发Cocos Creator基础入门_实战项目:开发一个简单游戏

通过这个实战项目,你已经掌握了 Cocos Creator 的基本使用方法,包括游戏场景的创建、角色的控制、碰撞检测、分数系统和游戏结束逻辑的实现。希望你在开发过程中遇到了一些挑战,也学到了很多新的技能。如果你对 Cocos Creator 感兴趣,建议你继续学习更高级的教程和文档,探索更多的功能和技巧。Cocos Creator 是一个强大的游戏开发工具,能够帮助你开发出更加复杂和有趣的游戏。祝你在游戏开发的道路上越走越远!

chenlz2007的博客 2019

cocos creator 框架_Cocos Creator 通用框架设计——网络

编者按本文来自于“Cocos 荣耀讲师”征稿活动第1期,最先发表于 Cocos 中文社区,作者,宝爷。宝爷是光子工作室的开发工程师,谦称自己为一枚码农,是一个热爱游戏、热爱开发、热爱学习并坚持沉淀知识的开发者,曾写过《精通 Cocos2d-x 游戏开发》基础卷与进阶卷,感谢宝爷为社区所做的贡献!在 Cocos Creator 中发起一个 http 请求是比较简单的,但很多游戏希望能够和服...

weixin_39752434的博客 1705

到一:基于Cocos Creator的微信小游戏开发全流程实战指南

游戏开发的核心在于构建一个持续运行的交互式应用,其基本原理遵循“处理输入、更新状态、渲染画面”的循环。在移动互联网时代,轻量化、即点即玩的游戏形态因其便捷的传播和低用户获取成本而备受青睐。微信小游戏正是这一趋势下的典型技术实现,它依托微信庞大的社交生态和成熟的支付体系,为开发者提供了直达海量用户的平台。从技术选型角度看,使用成熟的游戏引擎如Cocos Creator,能有效降低开发门槛,引擎内置的物理系统、资源管理器和可视化编辑器,让开发者能更专注于游戏玩法逻辑的实现。在工程实践中,掌握环境搭建、核心循环编

weixin_30701575的博客 403

Cocos Creator 项目基础框架教程

`cocos_creator_proj_base` 是一个基于 Cocos Creator 1.5.1 的项目基础框架,旨在为开发者提供一个快速启动的模板。该框架包括了 HTTP 处理、UI 池管理、事件管理、弹窗管理以及常用的控件如 ListView 等。通过使用这个基础框架开发者可以更高效地开始新项目的开发。 ## 项目快速启动 ### 克隆项目 首先,你需要克隆项目到本地: ```

gitblog_01179的博客 1009

Cocos Creator引擎开发Cocos Creator基础入门_场景和节点管理

通过合理管理场景和节点,可以高效地构建游戏世界,实现游戏逻辑和视觉效果。本节详细介绍了如何在Cocos Creator中创建、加载和切换场景,创建和管理节点,处理节点的事件,管理和播放节点的动画,以及实现节点的碰撞检测。希望这些内容能帮助你在Cocos Creator中更好地进行游戏开发

chenlz2007的博客 1182

Cocos Creator三消游戏开发指南:从打造开心消消乐完整项目

开心消消乐是一款经典的三消游戏,本指南将带你使用Cocos Creator开始构建一个完整的开心消消乐项目。通过本教程,你将学习游戏核心机制设计、关卡配置、UI界面开发等关键步骤,快速掌握三消游戏开发的精髓。 ## 项目概述与环境准备 开心消消乐项目基于Cocos Creator引擎开发,使用TypeScript作为主要编程语言。项目结构清晰,资源文件与代码分离,便于维护和扩展。 首先需

gitblog_00441的博客 815

Cocos Creator 3D游戏引擎开发终极指南:从掌握跨平台游戏制作

在当今竞争激烈的游戏开发领域,开发者们面临着多重挑战:如何快速上手复杂的技术栈?如何实现一次开发、多平台部署?如何确保游戏性能在移动设备和桌面平台上都能达到最佳状态?这些痛点正是 Cocos Creator 游戏引擎要解决的核心问题。作为一个免费、开源、跨平台的游戏引擎,Cocos Creator开发者提供了完整的 2D 和 3D 功能,以及直观、低成本且协作友好的工作流程。 ## Coco

gitblog_01056的博客 723
上一篇: cocos creator从零开发简单框架(01)-项目初始化
下一篇: cocos creator从零开发简单框架(03)-框架初始化
mirahs
博客等级 码龄14年 293粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值