当前位置: 首页 > news >正文

cocos入门11:生命周期

Cocos Creator 是一个强大的游戏开发工具,它基于 JavaScript 或 TypeScript,并使用 cc.Class 系统来组织游戏逻辑。在 Cocos Creator 中,每个组件(包括场景、节点和组件脚本)都有其生命周期,这些生命周期函数允许开发者在特定时刻执行代码。

1. 节点(cc.Node)的生命周期

节点是 Cocos Creator 场景图的基本单位,它包含组件和其他子节点。

1.1 onLoad
  • 调用时机:当节点第一次被加载时调用。
  • 用途:初始化节点状态,比如设置初始位置、大小等,以及加载任何必要的资源。
onLoad () {this.position = cc.v2(100, 100);// 加载资源等
}
1.2 start(可选)
  • 调用时机:在 onLoad 之后,第一次激活节点(进入场景或变为可见)时调用。
  • 用途:执行一些需要在节点激活时进行的操作,比如开始动画、播放声音等。
start () {this.playAnimation();
}
1.3 update(可选)
  • 调用时机:每帧调用。
  • 用途:处理帧更新逻辑,比如移动角色、碰撞检测等。
update (dt) {// dt 是上一帧到当前帧的时间间隔,单位秒this.x += 10 * dt;
}
1.4 lateUpdate(可选)
  • 调用时机:在 update 之后调用。
  • 用途:用于需要在所有节点的 update 之后执行的逻辑。
1.5 onDestroy(可选)
  • 调用时机:当节点被销毁时调用。
  • 用途:清理资源,比如停止动画、释放内存等。
onDestroy () {this.stopAnimation();
}

2. 组件(cc.Component)的生命周期

组件附加到节点上,并共享节点的生命周期。组件也有类似的生命周期函数。

2.1 onLoadstartupdatelateUpdateonDestroy
  • 这些函数与节点的生命周期函数类似,但它们是针对组件的。
  • 当组件附加到节点时,这些函数会随节点的生命周期一起被调用。

3. 场景(cc.Scene)的生命周期

场景包含多个节点和组件,并有自己的生命周期函数,但这些函数通常与节点的生命周期函数相似。

3.1 onLoadstartupdateonDestroy
  • 这些函数在场景加载、启动、更新和销毁时被调用。
  • 但通常,开发者会在场景中的节点或组件上处理大部分逻辑。

4. 注意事项

  • 生命周期函数的调用顺序是固定的,并且依赖于节点和组件的加载和销毁顺序。
  • onLoad 中,节点和组件还没有完全添加到场景图中,所以不应依赖于与其他节点的关系或位置。
  • onDestroy 中,应清理所有资源,以避免内存泄漏。
  • updatelateUpdate 在每帧都会被调用,所以要小心性能问题,避免在其中执行繁重的操作。

5. 总结

了解 Cocos Creator 的生命周期函数是编写高效、健壮游戏逻辑的关键。通过合理使用这些函数,你可以更好地控制游戏的流程和资源使用。

!!!
所有组件的onload方法执行完,才开始执行onstart

http://www.lryc.cn/news/371733.html

相关文章:

  • c++分辨读取的文件编码格式是utf-8还是GB2312
  • MS721仪表总线(M-Bus)从站收发电路
  • 用Python代码锁定Excel单元格以及行和列
  • 在Lua解释器中注册自定义函数库
  • UKP3D用户定制图框的思路
  • 事务并发问题 与 事务隔离级别
  • 云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙
  • MFC为什么说文档在数据的保存和给用户提供数据之间划分了清晰的界限?
  • SAS:PROC SQL和ANSI标准
  • 使用mysql_config_editor可以为特定的MySQL服务器或客户端程序设置登录路径
  • gridview的模板按钮如何判断用户点击的是哪一行
  • 虚拟化 之三 详解 jailhouse(ARM 平台)的构建过程、配置及使用
  • 数据安全:Web3时代的隐私保护新标准
  • STM32串口不定长接收空闲中断
  • Ubuntu 设置开机启动脚本
  • C# Task 包含 await ConfigureAwait CancellationTokenSource
  • Python数据分析与建模库-02科学计算库Numpy01-05合集
  • 【前端项目笔记】1 登录与登出功能实现
  • 是字符串定义以及在C语言中字符串是如何表示的
  • 辽宁普通测径仪升级智能测径仪后都有哪些改进?
  • 【微信小程序】事件分类以及阻止事件冒泡
  • 踩坑!被node-sass折磨的一天
  • App UI 风格打造独特体验
  • 【学习笔记8】阅读StyleID论文源码
  • wordpress旅游网站模板
  • vs2019 c++20规范 STL 库中头文件 <atomic> 源码注释及探讨几个知识点
  • Flink任务如何跑起来之 2.算子 StreamOperator
  • 学习笔记——路由网络基础——路由优先级(preference)
  • 数据预处理——调整方差、标准化、归一化(Matlab、python)
  • opencv_特征检测和描述