cocos creator基础-cocos编辑器学习

  1 // 拿到当前组件所依附的节点
  2 this.node
  3 // 拿到当前组件
  4 this
  5 // 如何取得其他节点
  6 
  7 // 取得节点的父节点
  8 this.node.parent
  9 // 取得节点的子节点数组
 10 this.node.children
 11 // 通过节点名字取得子节点
 12 this.node.getChildByName('node-3');
 13 // 删除节点
 14 this.node5.removeFromParent(); // 这个只是断开与父节点的链接 并没删除
 15 this.node5.destroy(); // 真正的删除
 16 
 17 // 实例化一个节点
 18 let nodeCopy = cc.instantiate(this.node5Prefab);
 19 this.node.addChild(nodeCopy);
 20 
 21 // 动作、动画
 22 this.node.runAction(
 23     cc.moveTo(1, 20, 20);
 24     cc.moveTo(1, 20, 20).easing(cc.easeBackIn(3));
 25     
 26     cc.rotateTo(1, 180);
 27     cc.fadeOut(1);
 28     cc.scaleTo(1, 2, 2);
 29 
 30     cc.removeSelf(true || false);
 31 );
 32 // 事件
 33     // 事件监听 node.on node.once
 34     this.node4.on('枪声', this.rush, this.node4);
 35     this.node5.on('枪声', this.escape, this.node5);
 36 
 37     rush : function(e){
 38         this // this.node4
 39         e.detail // 参数{hello : 'world'}
 40         this.runAction(cc.moveTo(1, 200, 0));
 41     }
 42     escape : function(){
 43         this // this.node5
 44     }
 45 
 46     // 关闭监听
 47     node.off
 48 
 49     // 发射事件
 50     emit 和 dispatchEvent。
 51     两者的区别是,dispatchEvent可以做事件传递(冒泡传送)
 52     this.node.emit('枪声', {hello : 'world'})
 53 
 54     // 触摸事件
 55     this.node.on('touchstart', this.onTouchStart, this);
 56     this.node.on('touchmove', this.onTouchMove, this);
 57     this.node.on('touchend', this.onTouchEnd, this);
 58     this.node.on('touchcancel', this.onTouchCancel, this);
 59 
 60     onTouchStart : function(e){
 61         console.log('onTouchStart', e);
 62         console.log(e.getLocation());
 63     }
 64     onTouchMove : function(e){
 65         console.log('onTouchMove', e);
 66     }
 67     onTouchEnd : function(e){
 68         console.log('onTouchEnd', e);
 69     }
 70     onTouchCancel : function(e){
 71         console.log('onTouchCancel', e);
 72     }        
 73 
 74     // 鼠标事件
 75     this.node.on('mouseup', this.mouseup, this);
 76     this.node.on('mousemove', this.mousemove, this);
 77     this.node.on('mousedown', this.mousedown, this);
 78     this.node.on('mouseenter', this.mouseenter, this);
 79     this.node.on('mouselevel', this.mouselevel, this);
 80     this.node.on('mousewheel', this.mousewheel, this);
 81 
 82     //键盘事件
 83     cc.systemEvent.on('keydown', this.onKeyDown, this);
 84     onKeyDown : function(e){
 85         if(e.keyCode == cc.KEY.w){
 86             console.log('key w press');
 87         }
 88     }
 89     cc.systemEvent.on('keyup', this.onKeyUp, this);
 90 // 预制体prefab
 91     动态创建一些内容时候需要将内容制作成预制体,代码内实例化
 92     预制体只能保存自己节点内的东西,节点外的不予保存
 93 // 定时器
 94 this.schedule(this.func, 1); // 循环执行 1秒1次
 95 this.scheduleOnce(this.func, 0); // 执行一次 这种写法会延迟一帧执行 当第二个参数为0时,这样可以实现让代码在所有update执行后执行一次,类似lateUpdate,用于顺序上的控制
 96 this.unSchedule(this.func) // 停一个
 97 this.unScheduleAll // 停全部
 98 // 全局变量的几种方式
 99     //1、window.xxx
100         window.globalVar = "xxxx";
101     //2、module.exports & require(这种是方便的用法)
102         创建一个文件global-module.js 代码如下
103             let arr = [1, 2, 3];
104             let num = 2;
105             let string = "xxx";
106 
107             module.exports = {
108                 arr,
109                 num,
110                 string
111             }
112             // 或者这么写
113             module.exports = {
114                 arr : arr,
115                 num : num,
116                 string : string
117             }
118         在使用的地方require
119         let globalModule = require('global-module');
120         globalModule.arr[0]
121 
122     //3、statics 静态值 代码如下 只在一个类内共用
123         let Component3 = cc.Class({
124             extends. cc.Component,
125             propertties : {
126 
127             },
128             statics : { // 静态字段 只实例化一次
129                 staticsVar : 'hello',
130             },
131 
132             onLoad : function(){
133                 Component3.staticsVar
134             },
135         });
136 
137     //4、addPersistRootNode 变为常驻节点
138     cc.game.ddPersistRootNode(this.node) // 不用的时候remove
139 
140     //5、cc.sys.localStorage.getItem cc.sys.localStorage.setItem // 把数据写入文件内,重新开游戏数据还在
141     cc.sys.localStorage.setItem('key', 'values'); // 储存
142     cc.sys.localStorage.getItem('key'); // 获取
143 // 坐标转换
144     // 从全局转到本地
145     // 关键,让点和坐标原点配套(原点从屏幕左下角开始0, 0)
146     let locationOfThisNode = this.node.convertToNodeSpaceAR(e.getLocation()); // 转到这个节点坐标系下
147     let locationOfThisNodeParent = this.node.parent.convertToNodeSpaceAR(e.getLocation()); // 转到与这个节点同级,就用parent
148     this.node.position = locationOfThisNodeParent; // 点到哪把节点放在哪的效果
149 
150 // 代码查找节点
151 cc.find('node1/').on('touchstart', this.onTouchStart, this);
152 cc.find('node1/node1_1<cc.Sprite>'); // 找到节点3的精灵组件
153 
154 
155 // 碰撞
156 
157 // 动画
158 
159 // 组件 Label Sprite cc.Component.Handler tileMap(瓦片)
160 
161 
162 // 引擎基础

猜你喜欢

转载自www.cnblogs.com/orxx/p/10300305.html