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
)
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
- event1: function(e){
- console.log(e.detail),
- this.runAction(cc.moveTo(1,200,0))
- },
5 触摸事件 鼠标事件 键盘事件
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
类型有:
- cc.SystemEvent.EventType.KEY_DOWN (键盘按下)
- cc.SystemEvent.EventType.KEY_UP (键盘释放)
- 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的更多相关文章
- Cocos Creator 脚本模板
1.由于新建Cocos Creator脚本带有很多注释,并且有时候需要增加定制的默认注释,所以需要修改脚本生成模板. 2.在CocosCreator\resources\static\template ...
- <5>Cocos Creator 脚本简介
1.创建脚本 在资源管理器窗口中点击鼠标右键,显示菜单中点击新建,选择新建的脚本类型,这里举例就选择菜单中的JavaScript,或者如下图点击创建按钮也可. 新建后就会在资源管理器中出现一个NewS ...
- Cocos Creator脚本开发事例
HelloWorld.js window.Global = { gint: 168, }; cc.Class({ extends: cc.Component, properties: { label: ...
- Cocos Creator学习目录
目录 安装和启动 文件结构 编辑器基础 基本概念 (场景树 节点 坐标 组件 ) Cocos Creator 脚本简介 Cocos Creator调试 节点 cc.Node 组件开发cc.Compon ...
- <7>Cocos Creator 节点 cc.Node
1.简介 节点(cc.Node)是渲染的必要组成部分.所有需要在游戏场景中显示的内容都必须是节点或者依附于节点之上.节点负责控制显示内容的位置.大小.旋转.缩放.颜色等信息. 2.节点属性 1: na ...
- 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项
步骤: 1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/a ...
- [经验] Cocos Creator使用笔记 --- 调用不同脚本下的函数
因为 JavaScript 不同于 Java, 想要调用不同文件的函数的话不能直接 ClassName object = new ClassName(); object.function(param) ...
- Cocos Creator—最佳构建部署实践
这篇文章主要是我们团队在使用Cocos Creator过程中的一些关于部署方面的实践总结,标题党了一回,严格来说,应该是<快看漫画游戏研发团队使用Cocos Creator构建部署最佳实践> ...
- cocos creator主程入门教程(七)—— MVC架构
五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑.本系列文章以TypeScript为介绍语言. 这一篇将介绍在游戏客户端常用的架构MVC架构.一个游戏的MVC如下划分: M:1)单例全局的数据中心Wo ...
- cocos creator入门
前面的话 Cocos Creator 是一个完整的游戏开发解决方案,包括了 cocos2d-x 引擎的 JavaScript 实现,以及快速开发游戏所需要的各种图形界面工具.Cocos Creator ...
随机推荐
- 7.pytest中的 plugin
一直想弄弄清这里的东西,一直各种因素delay,今天务必要搞搞清 一.先从官方文档上尝试去解读下什么是plugin和hook 网上有现成的对你适用的插件时候,我们可以直接pip安装,拿来使用即可:但是 ...
- 自动更新R软件
利用R语言命令自动更新R语言软件的版本. install.packages("installr") library(installr) updateR()
- python之类与对象(5)
6. 类的多继承与超继承 6.1 多继承 python的类还有一个特点,就是可以继承多个类.但是我们作为测试人员,在实际中很少用到这个多继承,这里不就详细(一直都不详细,hhhh)写了.上代码: #! ...
- PHP错误与异常处理
https://www.cnblogs.com/zyf-zhaoyafei/p/6928149.html 请一定要注意,没有特殊说明:本例 PHP Version < 7 说起PHP异常处理,大 ...
- .net core集成 vue
1. 在vs 2017 中选中.csproj文件右键修改. 2. 在.csproj 文件中添加如下代码,即表示在构建之前先执行 npm install 和npm run build. <Targ ...
- Java第四次实训作业
1.编写“电费管理类”及其测试类. 第一步 编写“电费管理”类1)私有属性:上月电表读数.本月电表读数2)构造方法:无参.2个参数3)成员方法:getXXX()方法.setXXX()方法4)成员方法 ...
- element-ui table多选CheckBox参数解析
element-UI里的table表格与多选框CheckBox的组合很常用,官网也给了很多参数,自己总结了一下,方便日后使用 1.简易用法,没有附加的功能 要在表格里使用CheckBox很简单,只需设 ...
- 文献综述十六:基于UML的中小型超市管理系统分析与设计
一.基本信息 标题:基于UML的中小型超市管理系统分析与设计 时间:2016 出版源:Journal of Xiangnan University 文件分类:uml技术系统的研究 二.研究背景 开发一 ...
- 3dsmax2018卸载/安装失败/如何彻底卸载清除干净3dsmax2018注册表和文件的方法
3dsmax2018提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dsmax2018失败提示3dsmax2018安装未完成,某些产品无法安装,也有时候想重新 ...
- (转)linux exec与重定向
原文:http://xstarcd.github.io/wiki/shell/exec_redirect.html linux exec与重定向 exec和source都属于bash内部命令(buil ...