Cocos Creator基础(二)

Director 类型

cc.director 一个管理你的游戏的逻辑流程的单例对象。
由于 cc.director 是一个单例,你不需要调用任何构造函数或创建函数,
使用它的标准方法是通过调用:
- cc.director.methodName();
它创建和处理主窗口并且管理什么时候执行场景。

Scheduler 类型

Scheduler 是负责触发回调函数的类。
通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。
有两种不同类型的定时器:

- update 定时器:每一帧都会触发。您可以自定义优先级。<br/>
- 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。<br/>

schedule

指定回调函数,调用对象等信息来添加一个新的定时器。
如果 paused 值为 true,那么直到 resume 被调用才开始计时。
当时间间隔达到指定值时,设置的回调函数将会被调用。
如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样, 建议使用 scheduleUpdateForTarget 代替。
如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER 可以让定时器一直循环触发。
delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。

BlockInputEvents 组件参考

BlockInputEvents 组件将拦截所属节点 bounding box 内的所有输入事件(鼠标和触摸),防止输入穿透到下层节点,一般用于上层 UI 的背景。

激活/关闭节点

节点默认是激活的,我们可以在代码中设置它的激活状态,方法是设置节点的 active 属性:

this.node.active = false;

设置 active 属性和在编辑器中切换节点的激活、关闭状态,效果是一样的。当一个节点是关闭状态时,它的所有组件都将被禁用。同时,它所有子节点,以及子节点上的组件也会跟着被禁用。要注意的是,子节点被禁用时,并不会改变它们的 active 属性,因此当父节点重新激活的时候它们就会回到原来的状态。

也就是说,active 表示的其实是该节点 自身的 激活状态,而这个节点 当前 是否可被激活则取决于它的父节点。并且如果它不在当前场景中,它也无法被激活。我们可以通过节点上的只读属性 activeInHierarchy 来判断它当前是否已经激活。

this.node.active = true;

若节点原先就处于 可被激活 状态,修改 active 为 true 就会立即触发激活操作:

  • 在场景中重新激活该节点和节点下所有 active 为 true 的子节点
  • 该节点和所有子节点上的所有组件都会被启用,他们中的 update 方法之后每帧会执行
  • 这些组件上如果有 onEnable 方法,这些方法将被执行

this.node.active = false;

如该节点原先就已经被激活,修改 active 为 false 就会立即触发关闭操作:

  • 在场景中隐藏该节点和节点下的所有子节点
  • 该节点和所有子节点上的所有组件都将被禁用,也就是不会再执行这些组件中的 update 中的代码
  • 这些组件上如果有 onDisable 方法,这些方法将被执行

猜你喜欢

转载自blog.csdn.net/sun124608666/article/details/104615992