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

)

5)容器动作

顺序动作:cc.sequence

可执行来回往复运动,如:

var seq = cc.sequence(cc.moveBy(0.5, 200, 0), cc.moveBy(0.5, -200, 0));

node.runAction(seq);//左右来回移动

同步动作:cc.spawn

可执行叠加系列动作,如:

var spawn = cc.spawn(cc.moveBy(0.5, 0, 50), cc.scaleTo(0.5, 0.8, 1.4));

node.runAction(spawn);//向上同时缩放

重复动作:cc.repeat

可执行重复一个动作,如:

var seq = cc.repeat(
cc.sequence(
cc.moveBy(2, 200, 0),
cc.moveBy(2, -200, 0)
), 5);
node.runAction(seq);//左右移动,重复5次
永远重复动作:cc.repeatForever
可执行一直重复动作,如:
 var seq = cc.repeatForever(
cc.sequence(
cc.moveBy(2, 200, 0),
cc.moveBy(2, -200, 0)
));//一直重复左右移动
改变速度:cc.speed
可执行改变速率,如:
var action = cc.speed(
cc.spawn(
cc.moveBy(2, 0, 50),
cc.scaleTo(2, 0.8, 1.4)
), 0.5);
node.runAction(action);//速度加快一倍,2秒变1秒
 
 

3.回调函数 callFunc

cc.callFunc(this.callBack, this, {'args':args}) 函数,对象,参数

callBack :function(targetNode, args){}

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

  1.  
    event1: function(e){
  2.  
    console.log(e.detail),
  3.  
    this.runAction(cc.moveTo(1,200,0))
  4.  
    },

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 (设备重力传感)

例如

cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this);

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

cocos-creator 脚本逻辑-1的更多相关文章

  1. Cocos Creator 脚本模板

    1.由于新建Cocos Creator脚本带有很多注释,并且有时候需要增加定制的默认注释,所以需要修改脚本生成模板. 2.在CocosCreator\resources\static\template ...

  2. <5>Cocos Creator 脚本简介

    1.创建脚本 在资源管理器窗口中点击鼠标右键,显示菜单中点击新建,选择新建的脚本类型,这里举例就选择菜单中的JavaScript,或者如下图点击创建按钮也可. 新建后就会在资源管理器中出现一个NewS ...

  3. Cocos Creator脚本开发事例

    HelloWorld.js window.Global = { gint: 168, }; cc.Class({ extends: cc.Component, properties: { label: ...

  4. Cocos Creator学习目录

    目录 安装和启动 文件结构 编辑器基础 基本概念 (场景树 节点 坐标 组件 ) Cocos Creator 脚本简介 Cocos Creator调试 节点 cc.Node 组件开发cc.Compon ...

  5. <7>Cocos Creator 节点 cc.Node

    1.简介 节点(cc.Node)是渲染的必要组成部分.所有需要在游戏场景中显示的内容都必须是节点或者依附于节点之上.节点负责控制显示内容的位置.大小.旋转.缩放.颜色等信息. 2.节点属性 1: na ...

  6. 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项

    步骤: 1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/a ...

  7. [经验] Cocos Creator使用笔记 --- 调用不同脚本下的函数

    因为 JavaScript 不同于 Java, 想要调用不同文件的函数的话不能直接 ClassName object = new ClassName(); object.function(param) ...

  8. Cocos Creator—最佳构建部署实践

    这篇文章主要是我们团队在使用Cocos Creator过程中的一些关于部署方面的实践总结,标题党了一回,严格来说,应该是<快看漫画游戏研发团队使用Cocos Creator构建部署最佳实践> ...

  9. cocos creator主程入门教程(七)—— MVC架构

    五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇将介绍在游戏客户端常用的架构MVC架构.一个游戏的MVC如下划分: M:1)单例全局的数据中心Wo ...

  10. cocos creator入门

    前面的话 Cocos Creator 是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及快速开发游戏所需要的各种图形界面工具.Cocos Creator ...

随机推荐

  1. 多张表进行关联查询---->删除某个数据的时候出现还有子记录的提示

    多张表进行关联查询的时候,当某张表里面的一个字段在另外一张表有定义,就相当于一张表是另外一张表的子表:比如现在开发所遇到的一个问题: 这个是在删除sys_user表的里面的数据的时候出现的问题,因为s ...

  2. TCP/IP——何时用UDP代替TCP

    UDP和TCP UDP和TCP都有其自身的特点,不同的应用场景和要求需要使用不同的协议来传输,那么何时我们可以用UDP代替TCP呢. UDP 的优点 UDP支持广播和多播,事实上如果应用程序使用广播或 ...

  3. Codeforces - tag::flows 大合集 [完坑 x14]

    589F 题意:给出n个时间区间,每个区间挑定长的非连续区间,求不同个区间不存在时间冲突的最大定长,输出乘上n 二分图模型+二分长度,左顶点集为区间编号,右顶点集为时间编号(1...10000),汇点 ...

  4. BZOJ - 3295 三维偏序 空间转换

    题意:动态逆序对,共m次删除操作,求每次操作前的逆序对个数 删除操作转换为添加操作,首先对时间a进行简单排序 然后用cdq分治处理b维,树状数组处理c维 此时需要求的是对于某有序组\((a,b,c)\ ...

  5. WebFrom页面绑定数据过于冗长的处理方法

    嘛 这个是当时写完东西之后 功能没什么问题 但是由于页面绑定的数据太长 破坏了整体的样式(对于本人来说 样式就是浮云....) 所以测试就跟我说必须弄好看点 于是乎  我就找到了下面这种方法 因为我这 ...

  6. es第十篇:Elasticsearch for Apache Hadoop

    es for apache hadoop(elasticsearch-hadoop.jar)允许hadoop作业(mapreduce.hive.pig.cascading.spark)与es交互. A ...

  7. Binder 驱动(三)

    Binder 驱动是 Binder 的最终实现, ServiceManager 和 Client/Service 进程间通信最终都是由 Binder 驱动投递的. Binder 驱动的代码位于 ker ...

  8. 如何获取select中的value、text、index相关值 && 如何获取单选框中radio值 && 触发事件 && radio 默认选中

    如何获取select中的value.text.index相关值 select还是比较常用的一个标签,如何获取其中的内容呢? 如下所示: <select id="select" ...

  9. Oracle PL/SQL编程之变量

    注: 以下测试案例所用的表均来自与scott方案,使用前,请确保该用户解锁. 1.简介 和大多数编程语言一样,在编写PL/SQL程序时,可以定义常量和变量,在pl/sql程序中包括有: a.标量类型( ...

  10. 高效的JS数组操作

    1.向数组的末尾添加元素 var arr=[1,2,3]; arr[arr.length]=1; 2.向数组的头部添加元素 var arr=[1,2,3]; [0].concat(arr); 3.向数 ...