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

相关推荐

  1. cocos入门11生命周期

    2024-06-14 22:20:03       29 阅读
  2. vue3从精通到入门12:vue3的生命周期和组件

    2024-06-14 22:20:03       41 阅读
  3. 10-通用类型、特质和生命周期

    2024-06-14 22:20:03       49 阅读
  4. #Uniapp:uni-app中vue2生命周期--11

    2024-06-14 22:20:03       57 阅读
  5. 11、Spring之Bean生命周期~依赖注入(2)

    2024-06-14 22:20:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-14 22:20:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-14 22:20:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-14 22:20:03       82 阅读
  4. Python语言-面向对象

    2024-06-14 22:20:03       91 阅读

热门阅读

  1. Docker相关命令

    2024-06-14 22:20:03       27 阅读
  2. Linux下安装MySQL

    2024-06-14 22:20:03       21 阅读
  3. PostgreSQL 的内置函数

    2024-06-14 22:20:03       29 阅读
  4. spring 单元测试注解

    2024-06-14 22:20:03       34 阅读
  5. python中装饰器的用法

    2024-06-14 22:20:03       33 阅读
  6. vue3.0(十三)内置组件Transition和TransitionGroup

    2024-06-14 22:20:03       24 阅读
  7. git删除分支

    2024-06-14 22:20:03       30 阅读