CocosCreator2.4x笔记-从Unity到Cocos[1]
内容基本来⾃Copy Paste Cocos Creator 的官⽹⽂档
主要来⾃于阅读的时候同时做笔记
CC Class
CCclass 构造函数 ctor: function () {}
罗志祥黄秋生
声明变量的时候加上类型,本质上是在声明处填写构造函数,设置get/set⽅法
草船借箭歇后语playerNode:cc.Node
节点访问和常⽤接⼝
获取组件所在的节点de
获取其他组件
通过类型 Component(cc.Label);
通过类名 var rotate = Component("SinRotate");
模块化⽅法 var Player = require("Player"); 然后 player:{defualt:null , type:Player}
查⼦节点de.children
或ChildByName("Cannon 01");
或cc.find("Cannon 01/Barrel/SFX", de);
全局查,只有⼀个参数的find
this.backNode = cc.find("Canvas/Menu/Back");
通过全局变量访问或require模块化⽅法来实现跨⽂件操作
var Global = require("Global");
节点激活 de.active = false;
更改⽗节点 de.parent = parentNode;
更改节点位置
更改节点旋转
缩放
尺⼨
仪表盘上各种灯亮都代表什么de.width = 100;或de.setContentSize(cc.size(100, 100));
锚点位置
颜⾊透明度
在使⽤ Sprite、Label 这些基本的渲染组件时,要注意修改颜⾊和不透明度的操作只能在节点的实例上进⾏,因为这些渲染组件本⾝并没有设置颜⾊和不透明度的接⼝。)支付宝口令红包
cc.Component 是所有组件的基类,任何组件都包括如下的常见接⼝(该组件的脚本中,以 this 指代本组件):
update(dt):作为组件的成员⽅法,在组件的 enabled 属性为 true 时,其中的代码会每帧执⾏
onLoad():组件所在节点进⾏初始化时(节点添加到节点树时)执⾏
start():会在该组件第⼀次 update 之前执⾏,通常⽤于需要在所有组件的 onLoad 初始化完毕后执⾏的逻辑
创建节点
new cc.Node() 并且通过node.addComponent(cc.Sprite)⽅式来进⾏
克隆和根据Prefab预制件⽣成节点 cc.instantiate
安全教育手抄报内容销毁节点 node.destroy() 销毁节点并不会⽴刻被移除,⽽是在当前帧逻辑更新结束后,统⼀执⾏。当⼀个节点销毁后,该节点就处于⽆效状态,可以通过 cc.isValid 判断当前节点是否已经被销毁。if (cc.isValid(this.target))
⽣命周期回调 Lifetime Callback Function | 链接
onLoad 组件脚本的初始化阶段,我们提供了 onLoad 回调函数。onLoad 回调会在节点⾸次激活时触发,⽐如所在的场景被载⼊,或者所在节点被激活的情况下。在 onLoad 阶段,保证了你可以获取到场景中的其他节点,以及节点关联的资源数据。onLoad 总是会在任何 start ⽅法调⽤前执⾏,这能⽤于安排脚本的初始化顺序。通常我们会在 onLoad 阶段去做⼀些初始化相关的操作
start start 回调函数会在组件第⼀次激活前,也就是第⼀次执⾏ update 之前触发。start 通常⽤于初始化⼀些需要经常修改的数据,这些数据可能在 update 时会发⽣改变。
update 游戏开发的⼀个关键点是在每⼀帧渲染前更新物体的⾏为,状态和⽅位。
lateUpdate update 会在所有动画更新前执⾏,但如果我们要在动效(如动画、粒⼦、物理等)更新之后才进⾏⼀些额外操作,或者希望在所有组件的 update 都执⾏完之后才进⾏其它操作,那就需要⽤到 lateUpdate 回调。
onEnable当组件的 enabled 属性从 false 变为 true 时,或者所在节点的 active 属性从 false 变为 true 时,会激活 onEnable 回调。倘若节点第⼀次被创建且 enabled 为 true,则会在 onLoad 之后,start 之前被调⽤。
onDisable 当组件的 enabled 属性从 true 变为 false 时,或者所在节点的 active 属性从 true 变为 false 时,会激活 onDisable 回调。
onDestroy当组件或者所在节点调⽤了 destroy(),则会调⽤ onDestroy 回调,并在当帧结束时统⼀回收组件。当同时声明了 onLoad 和 onDestroy 时,它们将总是被成对调⽤。也就是说从组件初始化到销毁的过程中,它们要么就都会被调⽤,要么就都不会被调⽤。
⼀个组件从初始化到激活,再到最终销毁的完整⽣命周期函数调⽤顺序为:onLoad -> onEnable -> start -> update -> lateUpdate -> onDisable -> onDestroy。
onLoad 节点激活时⽴即调⽤ 组件 enabled 时才会调⽤?否
start 节点激活时延迟调⽤ 组件 enabled 时才会调⽤?是
加载和场景切换
通过场景名索引和加载切换cc.director.loadScene("MyScene");陈小春第一任妻子照片
对于AssetBundle区分加载和运⾏需要使⽤ cc.director.runScene(scene);
如果需要有全局不因为场景加载⽽销毁的常驻节点,类似Unity DontDestroyOnLoad 可以使⽤常驻节点,或全局变量访问