一、场景加载

  • cc.director.loadScene(‘场景名称');//场景跳转
  • cc.director.preloadScene(‘场景名称');//预加载场景
  • cc.director.getScene();//获取当前场景

二、查找节点

1,节点查找

  • node = cc.find(“Canvas/bg”);//路径访问节点 性能消耗相对较大
  • this.node.getChildByName(‘name');//名称获取子节点 性能消耗较小
  • node.getComponent(cc.Label)//获取节点上label属性值
  • this.node; //当前脚本节点
  • this.node.parent; //父节点
  • this.node.getChildByTag(100); //通过标签获取子节点
  • cc.find(“game/test”,this.node); //通过指定节点下的路径获取节点
  • this.node.children; //获取所有子节点
  • node.getChildren(); //获取所有子节点
  • this.node.childrenCount; //获取子节点数量
  • node.getChildrenCount(); //获取子节点数量
  • cc.director.getScene(); //获取场景主节点
  • var sprites = this.node.getComponentsInChildren(cc.Label);//递归查找自身及所有子节点中指定类型的组件

2,节点其他操作

  • cc.instantiate(node);//克隆节点
  • this.node.parent = cc.find(‘Canvas');//绑定父节点
  • this.node.addChild(nodeName,zIndex,tag);//添加子节点,可设置层级和标签
  • this.node.removeChild(nodeName);//移除子节点
  • this.node.removeChildByTag (nodeTag);//通过标签移除子节点
  • this.node.destroy();//销毁节点
  • this.node.isValid;//判定节点是否可用
  • this.node.removeChild(newNode);//移除节点中指定的子节点
  • this.node.removeChildByTag(100);//通过标签移除节点中指定的子节点
  • this.node.removeAllChildren();//移除所有子节点
  • this.node.destroyAllChildren();//销毁所有子节点

3,停止播放动作以及计时器

this.node.cleanup();//停止所有正在播放的动作和计时器

三、节点属性设置

  • node.getPositionX();或 getPositionY() //X轴或Y轴坐标
  • node.getScaleX(); 或getScaleY() //X轴或Y轴缩放比例
  • node.x = 100;//设置节点x轴坐标
  • node.y = 100;//设置节点y轴坐标
  • node.setPosition(x,y); //设置节点坐标
  • node.rotation = 90; //设置节点旋转角度
  • node.scaleX = 2; //设置节点x轴缩放倍数
  • node.scaleY = 2; //设置节点y轴缩放倍数
  • node.setScale(2); //设置节点整体缩放倍数
  • node.width = 100; //设置节点宽度大小
  • node.height = 100; //设置节点高度大小
  • node.setContentSize(100, 100); //设置节点宽高尺寸大小
  • node.anchorX = 1; //设置节点x轴锚点坐标
  • node.anchorY = 0; //设置节点y轴锚点坐标
  • node.setAnchorPoint(1, 0); //设置节点锚点坐标
  • node.opacity = 255; //设置节点透明度大小(0-255)
  • node.setOpacity(20); //设置节点透明度(0~255)
  • node.color = new cc.color(100,100,100,255); //设置节点颜色(R,G,B,透明度)
  • cc.isValid(this.label.node) //判定节点是否存在
  • node.active = false; //关闭节点(隐藏节点)

常驻节点

  • cc.game.addPersistRootNode(myNode); //常驻节点(全局变量)
  • cc.game.removePersistRootNode(myNode); //取消常驻节点

四、节点动作

  • cc.show()//立即显示
  • cc.hide ()//立即隐藏
  • cc.toggleVisibility()//显隐切换
  • cc.fadeIn(1)//渐显效果
  • cc.fadeOut(1)//渐隐效果
  • cc.delayTime(1)//等待1秒
  • node.runAction(cc.moveTo(1,0,0)); //移动到当前节点(时间(s),X轴坐标,Y 轴坐标)
  • node.runAction(cc.scaleTo(1,0.7,0.8));//缩放到当前倍数节点(时间(s),X轴倍数,Y 轴倍数)
  • node.runAction(cc.rotateTo(1,160,160));//旋转到指定角度(时间(s),X轴角度,Y 轴角度)
  • node.runAction(cc.skewTo(1,5,-5));//变化节点倾斜度(时间(s),X轴倾斜度,Y 轴倾斜度)
  • node.runAction(cc.fadeTo(2,0));//变化当前节点的透明度(时间(s),透明度)
  • node.runAction(cc.tintTo(2,255,255,0));//变化当前节点颜色(时间,R,G,B)
  • node.stopAllActions();//停止所有动作
  • var action = cc.moveTo(2, 100, 100);// 创建一个动作(moveTo是移动)
  • node.runAction(action);// 执行指定动作
  • node.stopAction(action);// 停止指定动作
  • cc.sequence(action1,action2); //按顺序连续执行
  • cc.spawn(action1,action2); //同时执行
  • cc.repeatForever(cc.sequence(action1,action2)); //一直重复的动作

五、计时器

start() {
        // 定时启动 
        // 在2S以后启动
        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
        }, 2)

        //   频率  次数+1  延迟
        this.schedule(() => {
            cc.log("schedule")
        }, 1, 3, 5)

        // 永远执行
        let one = this.schedule(() => {
            cc.log("schedule")
        }, 1, cc.macro.REPEAT_FOREVER, 2)


        // 清除所有定时
        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
            this.unscheduleAllCallbacks()
        }, 5)

        let callb = function () {
            cc.log("callb")
        }
        this.schedule(callb, 0.5)  //默认永远执行

        this.scheduleOnce(() => {
            cc.log("scheduleOnce")
            this.unschedule(callb)
        }, 2)
    },

六、事件监听

(开始:‘touchstart',移动:‘touchmove',结束:‘touchend',取消:‘touchcancel')

node.on('touchstart',function(event){
	this.doSomething();
},this);
  • event.getID();//获取触点的ID
  • event.getLocationX();//获取触摸点的坐标X
  • event.getLocationY();//获取触摸点的坐标Y
cc.eventManager.addListener({
	event: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);

七、定义全局变量

window.global= “blobal string”;//任意脚本里可定义全局变量

window.G = {
	a: null,
	b: null,
};

任意脚本里可访问全局变量(前提是脚本已执行过)
G.a = 0;
G.b = 0;

var something = require(‘something');
cc.game.addPersistRootNode(myNode);//常驻节点,必须位于层级的根节点
module.exports = {
     config: 123
}

八、分辨率

获得设备分辨率

  • var equipment= cc.director.getWinSizeInPixels()
  • var equipmentW= equipment.width
  • var equipmentH= equipment.height
  • cc.view.getCanvasSize().width;//获得设备分辨率的宽度
  • cc.view.getCanvasSize().height;//获得设备分辨率的高度
  • cc.director.setDisplayStats(true);//显示帧数信息

九、音频控制

cc.audioEngine.playMusic(this.BGAudio,true);//播放音乐(true循环)
cc.audioEngine.stopMusic()//停止播放
cc.audioEngine.playEffect(this.ClickAudio,false);//播放音效(false代表只播放一次)
cc.audioEngine.stopEffect(音效变量名);//停止指定音效(需要先把音效赋值给变量)
cc.audioEngine.AllEffects();//停止所有音效
cc.audioEngine.setMusicVolume(参数); //设置背景音乐的音量(范围是0到1)
cc.audioEngine.setEffectsVolume(参数); //设置音效的音量(范围是0到1)

十、设备判断

  • cc.sys.isNative //是否是本地
  • cc.sys.isBrowser //是否是网页
  • cc.sys.isMobile //是否是移动系统
  • cc.sys.platform //正在运行的平台
  • cc.sys.language //当前运行系统的语言
  • cc.sys.os //当前正在运行的系统
  • cc.sys.OS_IOS //是否是IOS系统
  • cc.sys.OS_ANDROID //是否是android系统
  • cc.sys.OS_WINDOWS //是否是windows系统
  • cc.sys.openURL(‘Http://www.baidu.com'); //打开网页

十一、监听和发射事件

  • this.node.pauseSystemEvents(true);//暂停节点系统事件
  • this.node.resumeSystemEvents(true);//恢复节点系统事件
  • this.node.targetOff(this);//移除所有注册事件

1、触摸监听

开始'touchstart',
移动'touchmove',
结束'touchend',
取消'touchcancel'

  • var pos = event.getLocation();//获取触摸点的坐标(包含X和Y)
  • var x = event.getLocationX();//获取触摸点的X坐标
  • var y = event.getLocationY();//获取触摸点的Y坐标
  • var a = event.getID();//获取触点的ID

2、鼠标监听

鼠标按下'mousedown',
移入节点'mouseenter',
节点中移动'mousemove',
移出节点'mouseleave,
‘松开鼠标'mouseup'

  • event.getScrollY();//获取滚轮滚动的 Y 轴距离,只有滚动时才有效
  • event.getLocation();//获取鼠标位置对象,对象包含 x 和 y 属性

3、输入框监听

获得焦点'editing-did-began',
文字变化'text-changed',
失去焦点'editing-did-ended',
按下回车'editing-return'

4,属性变化监听

位置'position-changed',
宽高 ‘size-changed',
旋转'rotation-changed',
缩放'scale-changed'

5、ScrollView控件监听

滚动中'scrolling',
停止滚动'scroll-ended'

6、用户自定义事件

监听: this.node.on(“自定义事件名称”, function(target) , this);

  • this.node.on(‘事件名',function,this);//注册监听
  • this.node.emit(‘事件名');//发送监听广播
  • this.node.off(‘事件名',function,this);//关闭监听

自派送: emit(“事件名称”, [detail]); 只有自己能够收到

onLoad: function () {
        // 接收者
        // 事件类型,是你自定义的字符串;
        // 回掉函数: function(e) {} e--> cc.Event.EventCustom的实例
        this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e);
        }, this);
        // 派发者,只能传递给自己,不会向上传递   
        this.node.emit("pkg_event", { name: "hanbao" });
    },

冒泡派送: dispatchEvent(new cc.Event.EventCustom(“name”, 是否冒泡传递));

onLoad: function () {
        // 接收者
        // 事件类型,是你自定义的字符串;
        // 回掉函数: function(e) {} e--> cc.Event.EventCustom的实例
        this.node.on("pkg_event", function (e) {
            console.log("pkg_event", e.detail);
        }, this);
    },
    start: function () {
        this.node.emit("pkg_event", { name: "hanbao" });  //这里会派发一次给自己
        // //这里派发给全局 发给这个体系;
        // true/false, true向上传递, false不向向上传递
        var e = new cc.Event.EventCustom("pkg_event", true);
        e.detail = { name: "haobao" };
        this.node.dispatchEvent(e);  
    },

补充:

  • cc.director.pause();//暂停
  • cc.director.resume();//继续
  • cc.director.end();//退出整个应用
  • node.getLocalZOrder();//层级获取
  • node.setLocalZOrder(1);//层级改变
  • cc.find(‘canvas/map' + num)//读取带变量的路径

以上就是整理CocosCreator常用知识点的详细内容,更多关于CocosCreator知识点的资料请关注程序员的世界其它相关文章!

整理CocosCreator常用知识点的更多相关文章

  1. javascript 箭头函数的使用介绍

    本文介绍箭头(arrow)函数的优点,更简洁的语法我们先来按常规语法定义函数:function funcName(params) { return params + 2; }funcName(2);// 4该函数使用箭头函数可以使用仅仅一行代码搞定!var funcN......

  2. 如何在微信小程序实现一个幸运转盘小游戏

    本人主要介绍如何在微信小程序里面开发一个幸运转盘的小游戏,里面主要用到javascript和 css 语法,就可以轻松实现一个简单的幸运转盘(以6个奖品区为例)。前言本次教程需要你掌握一定量 javascript 和 css 基础知识,并且你需要有小程序一定的开发经验,具体需要掌握知识点有:css ......

  3. JavaScript 防盗链的原理以及破解方法

    背景前段日子 在自学做项目的时候发现 明明在项目中引用了线上存在的图片 但是在自己的项目中却怎么也显示出来查阅资料后发现是这些第三方网站设置了防盗链破解防盗链先说说防盗链的原理,http 协议中,如果从一个网页跳到另一个网页,http 头字段里面会带个 Referer。这里的Referer是由于历史......

  4. JavaScript 如何禁止用户保存图片

    场景 在业务需求中不希望用户保存图片,因为是一些供内部使用的图片。 思路 添加事件禁止选择、拖拽、右键(简单的禁止用户保存图片,但无法阻止用户打开控制台查看,或是直接抓包) 将之转换为 canvas(让浏览器认为不是图片以此禁止用户对之进行图片的操作,但无法阻止抓包) 禁止用户使用控......

  5. 如何使用 JavaScript 操作浏览器历史记录 API

    History 是 window 对象中的一个 JavaScript 对象,它包含了关于浏览器会话历史的详细信息。你所访问过的 URL 列表将被像堆栈一样存储起来。浏览器上的返回和前进按钮使用的就是 history 的信息。History 对象包含长度属性,它包含了会话历史记录栈中的 URL 数量。......

  6. JavaScript实现鼠标经过表格行给出颜色标识

    本文实例为大家分享了JavaScript实现鼠标经过表格行给出颜色标识,供大家参考,具体内容如下代码:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"......

  7. JavaScript中的Proxy对象

    Js中Proxy对象Proxy对象用于定义基本操作的自定义行为,例如属性查找、赋值、枚举、函数调用等。语法const proxy = new Proxy(target, handler);target: 要使用Proxy包装的目标对象,可以是任何类型的对象,包括原生数组,函数,甚至另一个代理。han......

  8. 前端 javascript 实现文件下载的示例

    在 html5 中,a 标签新增了 download 属性,包含该属性的链接被点击时,浏览器会以下载文件方式下载 href 属性上的链接。示例:下载1. 前端 js 下载实现与示例通过 javascript 动态创建一个包含 download 属性的 a 元素,再触发点击事件,即可实现前端下载。代码......

  9. JavaScript Html实现移动端红包雨功能页面

    本文实例为大家分享了Html实现移动端红包雨功能页面的具体代码,供大家参考,具体内容如下实现效果如下:具体代码如下html部分:红包雨demo.css为初始化css,可以不加index.css部分body{width: 100%;height: 100%;background-image: url(/javascript/......

    ____
  10. ________
  11. JS数组去重的九种高阶方法(亲测有效)____

    前言一般的方法此处也不列举了,还是有很多的,如双层循环判断是否相等,或新建数组比较再push等等,需要注意的是,使用splice方法移除元素时,有可能会导致数组塌陷问题,需要处理一下本文中介绍了多种数组去重的方法,使用了较多的高阶方法及API,并给出相应解释及语法,还有其他多种组合调用方式,原理逻辑......

随机推荐

  1. jquery文本框内容改变事件

    /** * 内容改变时并不会触发事件,但是在失去焦点的时候会触发。*/$("#inputid").change(function(){ console.log($(this).val());});/** * 只要文本类容发生改变,就会触发该事件 */$("#inp......

  2. 浅谈在Java中JSON的多种使用方式

    1. 常用的JSON转换JSONObject 转 JSON 字符串JSONObject json = new JSONObject();jsonObject.put("name", "test");String str = JSONObject.toJSONS......

  3. 用python批量移动文件

    我是用来移动图片的,其他格式的文档也是可以的,改下后缀列表就可以了import os,shutilimport datetime #将文件夹里的图片全部移动到新文件夹中#revised by Stephen Shen 2020-3-10 09:28:50 def renameFile(dst......

  4. JavaScript实现浏览器网页自动滚动并点击的示例代码

    1. 打开浏览器控制台窗口JavaScript通常是作为开发Web页面的脚本语言,本文介绍的JavaScript代码均运行在指定网站的控制台窗口。一般浏览器的开发者窗口都可以通过在当前网页界面按F12快捷键调出,然后在上面的标签栏找到Console点击就是控制台窗口,在这里可以直接执行JavaScr......

  5. Android端代码量非常小的分页加载库

    前言RecyclerView几乎在每个app里面都有被使用,但凡使用了列表就会采用分页加载进行数据请求和加载。android 官方也推出了分页库,但是感觉只有kotlin一起使用才能体会到酸爽。Java 版本的也有很多很强大的第三方库,BaseRecyclerViewAdapterHelper这个库......

  6. JavaScript/TypeScript 实现并发请求控制的示例代码

    场景假设有 10 个请求,但是最大的并发数目是 5 个,并且要求拿到请求结果,这样就是一个简单的并发请求控制模拟利用 setTimeout 实行简单模仿一个请求let startTime = Date.now();const timeout = (timeout: number, ret: numb......

  7. Java并发包源码学习系列:阻塞队列实现之ArrayBlockingQueue源码解析

    目录ArrayBlockingQueue概述类图结构及重要字段构造器出队和入队操作入队enqueue出队dequeue阻塞式操作E take() 阻塞式获取void put(E e) 阻塞式插入E poll(timeout, unit) 阻塞式超时获取boolean offer(e, timeout......

  8. ViewPager2滑动冲突的解决方法

    ViewPager2滑动冲突解决,供大家参考,具体内容如下本文章对ViewPager2的滑动冲突没有提供完善的解决方案,仅为巩固解决滑动冲突方面的知识首先看看没有解决滑动冲突时写的demo:MainActivity.javapackage com.example.bannerimport andro......

  9. JavaScript 如何禁止用户保存图片

    场景 在业务需求中不希望用户保存图片,因为是一些供内部使用的图片。 思路 添加事件禁止选择、拖拽、右键(简单的禁止用户保存图片,但无法阻止用户打开控制台查看,或是直接抓包) 将之转换为 canvas(让浏览器认为不是图片以此禁止用户对之进行图片的操作,但无法阻止抓包) 禁止用户使用控......

  10. vue 中this.$set 动态绑定数据的案例讲解

    感觉网上对this.$set的讲解乱糟糟的,我来总结一下对它单个数据、对象、数组、json数据的绑定.话不多说直接上代码:text0 text0: {{text0}}textObj textObj.text1: {{textObj.text1}}textArr textArr[1]: {{textA......