Cocos Creator
是一个强大的游戏开发工具,它基于 JavaScript 或 TypeScript,并使用 cc.Class
系统来组织游戏逻辑。在 Cocos Creator
中,每个组件(包括场景、节点和组件脚本)都有其生命周期,这些生命周期函数允许开发者在特定时刻执行代码。
1. 节点(cc.Node)的生命周期
节点是 Cocos Creator
场景图的基本单位,它包含组件和其他子节点。
1.1 onLoad
- 调用时机:当节点第一次被加载时调用。
- 用途:初始化节点状态,比如设置初始位置、大小等,以及加载任何必要的资源。
javascript
onLoad () {
this.position = cc.v2(100, 100);
// 加载资源等
}
1.2 start
(可选)
- 调用时机 :在
onLoad
之后,第一次激活节点(进入场景或变为可见)时调用。 - 用途:执行一些需要在节点激活时进行的操作,比如开始动画、播放声音等。
javascript
start () {
this.playAnimation();
}
1.3 update
(可选)
- 调用时机:每帧调用。
- 用途:处理帧更新逻辑,比如移动角色、碰撞检测等。
javascript
update (dt) {
// dt 是上一帧到当前帧的时间间隔,单位秒
this.x += 10 * dt;
}
1.4 lateUpdate
(可选)
- 调用时机 :在
update
之后调用。 - 用途 :用于需要在所有节点的
update
之后执行的逻辑。
1.5 onDestroy
(可选)
- 调用时机:当节点被销毁时调用。
- 用途:清理资源,比如停止动画、释放内存等。
javascript
onDestroy () {
this.stopAnimation();
}
2. 组件(cc.Component)的生命周期
组件附加到节点上,并共享节点的生命周期。组件也有类似的生命周期函数。
2.1 onLoad
、start
、update
、lateUpdate
、onDestroy
- 这些函数与节点的生命周期函数类似,但它们是针对组件的。
- 当组件附加到节点时,这些函数会随节点的生命周期一起被调用。
3. 场景(cc.Scene)的生命周期
场景包含多个节点和组件,并有自己的生命周期函数,但这些函数通常与节点的生命周期函数相似。
3.1 onLoad
、start
、update
、onDestroy
- 这些函数在场景加载、启动、更新和销毁时被调用。
- 但通常,开发者会在场景中的节点或组件上处理大部分逻辑。
4. 注意事项
- 生命周期函数的调用顺序是固定的,并且依赖于节点和组件的加载和销毁顺序。
- 在
onLoad
中,节点和组件还没有完全添加到场景图中,所以不应依赖于与其他节点的关系或位置。 - 在
onDestroy
中,应清理所有资源,以避免内存泄漏。 update
和lateUpdate
在每帧都会被调用,所以要小心性能问题,避免在其中执行繁重的操作。
5. 总结
了解 Cocos Creator
的生命周期函数是编写高效、健壮游戏逻辑的关键。通过合理使用这些函数,你可以更好地控制游戏的流程和资源使用。
!!!
所有组件的onload方法执行完,才开始执行onstart