cocos-creator 脚本逻辑-1

1.节点

编辑组件的脚本文件时。可以通过以下语句获得节点

this 就是当前组件

this.node

拿到组件依附的节点 

This.node.parent

拿到组件依附的节点 的父节点

This.node.children

拿到组件依附的节点 的子节点

this.node.getChildByName(‘’)

通过名称取得特定名的直系子节点

cc.removeSelf() 

从节点树删除该节点 留在内存,但已经不在节点中 如果 args = true 则消失

跨直系引用节点

在properties 中声明 node 对象再在编辑器中拖拽绑定

就可以在组建内部直接引用

两个属性

默认组件名样式 name:节点<组件>

isValid 组件是否还在活动

2.动作

所有的动作 api 是由节点提供的,所以我们要先拿到节点

如 node.runAction()

1)动作运行:

runAction('action') 开始一个动作

stopAction(‘action’) 停止一个动作

stopAllAction() 停止该节点下的所有动作

2) 设置tag

action.setTag('tag_name')

node.getActionByTag('tag_name')

3)移动

cc.moveTo(1,20,20) 用 1s 以父节点锚点为坐标中心移动到(20,20)的位置

可以移动到一个点的相对位置,比如可以换成 cc.v2(100,100) 以c2为坐标的(100,100)

cc.rotateTo(1,50) 1s 第二个参数是角度

cc.moveBy() 相对移动

cc.scaleTo(1,2,2) 1s 放大到 2,2 scale

cc.fadeOut(1) 1s 消失

4)动作包装

包装为一个动作

cc.sequence(

动作1,

动作2

)

4.事件/交互内容

添加 Label 内置组件来添加名称,方便于判断

在操作过程中记得返回编辑器拖拽补充引用。

emit 和 on 配套 发射和监听

This.node.emit(”事件“,{参数}); 发生“事件” 同时给出参数

this.node.on(”事件“,this.event1,this.node1) 发生了“事件”后 执行 event1 执行对象是这个 node

this.node.on(”事件“,this.event2,this.node2)

限制:(参数必须和 on 一致 )

this.node.once() 只监听听一次 

this.node.off() 不再监听 on 

实例:

这里的 this 指的是 node1

5 触摸事件 鼠标事件 键盘事件

1)触摸(因为用的比较多这个写完整,其它都只写一个)

This.node.on(‘touchStart’,this.onTouchStart,this) 开始触摸

this.node.on(‘touchmove’,this.onTouchMove,this); 触摸移动,持续触发

this.node.on(‘touchEnd’,this.onTouchEnd,this) 触摸停止

this.node.on(‘touchCancel’,this.onTouchCancel,this) 触摸取消,(节点外释放)

This.node.on(‘mouseup’,this.onMouseUp,this)  鼠标脱离

mouseDown onMouseDown 鼠标按下 

mouseMove onMouseMove 鼠标移动(不一定要点击)

mouseEnter onMouseEnter 鼠标进入节点区域

mouserLeave onMouseLeave 鼠标离开节点区域

mouseWheel onMouseWheel 鼠标滚轮

获取点击

getButton() 返回 0 1 2 对应 左中右

2)键盘事件 

cc.systemEvent.on(type,callback,target)

返回一个 keycode 

可选的 type 类型有:

  1. cc.SystemEvent.EventType.KEY_DOWN (键盘按下)
  2. cc.SystemEvent.EventType.KEY_UP (键盘释放)
  3. cc.SystemEvent.EventType.DEVICEMOTION (设备重力传感)

例如

If e.keyCode == cc.KEY.w 当 keycode 是 w 时

cc.KEY.(按键)

3)获取坐标

getLocation() 获取全局坐标下的圆心

例子:

onTouchStart: function(e){

    E.getLocation() 

}

坐标转换:从全局坐标系转到本地坐标系

let locationOfThisNode = this.node.convertToNodeSpaceAR(e.getLocation()) AR 忽略锚点 this.node目标坐标系对应节点

让某个节点的坐标更新

this.node.position = locationOfThisNode

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


kindeditor4.x代码高亮功能默认使用的是prettify插件,prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,实现方式如下: 首先在编辑器里面插入javascript代码: 确定后会在编辑器插入这样的代码: <pre
这一篇我将介绍如何让kindeditor4.x整合SyntaxHighlighter代码高亮,因为SyntaxHighlighter的应用非常广泛,所以将kindeditor默认的prettify替换为SyntaxHighlighter代码高亮插件 上一篇“让kindeditor显示高亮代码”中已经
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面
如何用js控制图片放大缩小
JS怎么获取当前时间戳
JS如何判断对象是否为数组
JS怎么获取图片当前宽高
JS对象如何转为json格式字符串
JS怎么获取图片原始宽高
怎么在click事件中调用多个js函数
js如何往数组中添加新元素
js如何拆分字符串
JS怎么对数组内元素进行求和
JS如何判断屏幕大小
js怎么解析json数据
js如何实时获取浏览器窗口大小
原生JS实现别踩白块小游戏(五)
原生JS实现别踩白块小游戏(一)