cocos入门11:生命周期

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

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

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

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

4. 注意事项

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

5. 总结

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

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

相关推荐
末零1 个月前
Cocos编辑器
cocos
jc_caterpillar2 个月前
Cocos使用精灵组件显示相机内容
cocos
一丝晨光3 个月前
Web技术简史、前后端分离、游戏
前端·javascript·css·游戏·unity·前后端分离·cocos
爱你的魔3 个月前
cocosCreator屏幕适配导致的获取node宽高不准问题分析
cocos2d·cocos
草字5 个月前
cocos 触摸2d屏幕拖动3d节点思路
3d·cocos
Lampard猿奋5 个月前
【游戏客户端】大话slg玩法架构(三)建筑控件
游戏·unity·cocos·cocos2dx·slg·游戏客户端
GDAL6 个月前
cocos入门10:脚本简介
cocos
GDAL6 个月前
cocos入门9:三维向量点乘
向量·cocos
GDAL6 个月前
Cocos入门2:软件安装
cocos