Skip to content

Cocos

下载

https://www.cocos.com/creator-download

学习资料

项目目录

librarytemp 是自动生成的,遇到缓存问题可尝试删除。

核心概念

  • 一个游戏是由多个场景组成的,一个场景是由多个节点组成的,一个节点是由多个组件组成的。
  • 子节点会随着父节点变动,但父节点不会随着子节点变动

层级管理器

用于管理节点(查看、新增、删除)

默认节点:

  • Main Light(光源)
  • Main Camera(摄像机)

场景编辑器

查看当前场景内所有节点(红线x轴左右方向,蓝线z轴前后方向,绿线y轴上下方向)。

提示

  • 选中节点后,按 F 键可重置视角到该节点。
  • 按住鼠标右键,左下角会出现提示,可移动视角。

属性检查器

查看和编辑场景内所有的组件。

资源检查器

存储和查看资源文件。

  • assets:存储自定义文件。
  • internal:存储官方自带资源。

资源预览

查看文件、路径等信息。

控制台

查看输出信息。

动画编辑器/动画图

用于编辑游戏动画。

生命周期

  • onLoad:加载函数。脚本第一个执行的函数,一般用于开启监听事件。
  • onDestroy:销毁函数。当组件或者节点被销毁时,执行这个函数,般用于关闭监听事件。
  • start:开始函数:脚本启动执行该函数。
  • update:每帧(1秒 = 60帧)都会执行的循环函数。
  • lateUpdate:延迟函数。update 函数执行后,执行这个函数自动执行函数
  • onDisable:节点被禁用/隐藏时自动执行函数
  • onEnable:节点被启用/显示时自动执行函数
ts
class NewClass extends Component {
  onLoad() {
    // 监听事件
  }

  start() {
    // 脚本启动
  }

  /**
   * daltaTime 每帧时间
   */
  update(deltaTime: number) {
    // 每帧执行
  }

  lateUpdate(deltaTime: number) {
    // 延迟执行
  }

  onEnable() {
    // 节点启用
  }

  onDisable() {
    // 节点禁用
  }

  onDestroy() {
    // 关闭监听事件
  }
}

常见注解

  • @ccclass:声明一个 Cocos Creator 组件类
  • @property:声明组件的属性,使其可以在编辑器中进行配置和修改

@property

ts
// 脚本中绑定节点/组件
// @property(类型) 对象名:类型 = 默认值
@property(Node)
CNode: Node = null

常见 api

获取位置

  • getPosition:获取节点位置
  • setPosition:设置节点位置
    • 帧时间补偿:防止设备帧数忽高忽低导致速度不对等,为了防止这种情况的一种处理方式。
ts
update(deltaTime: number) {
  let pos = this.node.getPosition() // 获取节点位置
  const cPos = this.CNode.getPosition() // 获取另一个节点位置
}

碰撞物体

  • onCollisionEnter:开始触发碰撞时调用
  • onCollisionStay:持续触发碰撞时调用
  • onCollisionExit:结束触发碰撞时调用
ts
class Player extends Component {
  PlayerCollider: Collider = null // 赛车自身节点的碰撞组件

  onLoad() {
    this.PlayerCollider = this.getComponent(Collider) // 获取赛车节点的碰撞组件
    this.PlayerCollider.on('onCollisionEnter', this.onCollisionEnter, this) // 监听开始触发
  }

  onDestroy() {
    this.PlayerCollider.off('onCollisionEnter', this.onCollisionEnter, this) // 取消监听开始触发
  }
}

监听事件

监听事件写法:

ts
input.on(监听类型, 回调函数, this)
input.off(监听类型, 回调函数, this)

鼠标事件:

  • Input.EventType.MOUSE_DOWN:鼠标按下事件
  • Input.EventType.MOUSE_MOVE:鼠标移动事件
  • Input.EventType.MOUSE_UP:鼠标抬起事件
  • Input.EventType.MOUSE_WHEEL:鼠标滚轮事件

触摸事件:

  • Input.EventType.TOUCH_START:触摸开始事件
  • Input.EventType.TOUCH_MOVE:触摸移动事件
  • Input.EventType.TOUCH_END:触摸结束事件
  • Input.EventType.TOUCH_CANCEL:触摸取消事件

键盘事件:

  • Input.EventType.KEY_DOWN:键盘按下事件
  • Input.EventType.KEY_PRESSING:键盘持续按下事件
  • Input.EventType.KEY_UP:键盘抬起事件

基于 MIT 许可发布