Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >cocos creator基本操作

cocos creator基本操作

原创
作者头像
Lee坚武
修改于 2020-04-10 10:09:44
修改于 2020-04-10 10:09:44
2.8K0
举报
文章被收录于专栏:iOS知识点iOS知识点

1.场景加载

cc.director.loadScene('场景名称');//场景跳转

cc.director.preloadScene('场景名称');//预加载场景

cc.director.getScene();//获取当前场景

2.获取节点

var node = cc.find("Canvas/bg");//通过访问路径来获取节点

var a = this.node.getChildByName('name');//通过名字获取子节点

node.getComponent(cc.Label).string = 'abc';//获取节点上的组件值

var a = cc.find("Canvas/bg").getComponent(cc.Sprite);//通过访问路径来获取节点,及获取该节点的指定组件

this.node .getChildByName('节点名称').getComponent(cc.Label)//通过节点名获取子节点,获取该节点指定组件

var a = this.node;//获取当前脚本所在的节点

var a = this.node.parent;//获取父节点

var a = this.node.getChildByTag(1001);//通过标签获取子节点

var a = cc.find("bg/score",this.node);//通过指定节点下的路径获取节点

var a = this.node.children;//获取所有子节点

var a = this.node.childrenCount;//获取子节点数量

var a = cc.director.getScene();//获取场景主节点

var a = 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(1001);//通过标签移除节点中指定的子节点

this.node.removeAllChildren();//移除所有子节点

this.node.destroyAllChildren();//销毁所有子节点

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

var sprites = this.node.getComponentsInChildren(cc.Label);//递归查找自身及所有子节点中指定类型的组件

3.获取节点位置,设置节点

var a = node.getPositionX();或 getPositionY() //获取节点的X轴或Y轴坐标

var a = 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 = 128; //设置节点透明度大小(0-255)

node.setOpacity(20); //设置节点透明度(0~255)

node.color = new cc.color(100,100,100,255); //设置节点颜色(R,G,B,透明度)

if (cc.isValid(this.label.node) ) //判定节点是否存在

node.destroy(); //销毁节点

this.cannons = [];

this.cannons = node.getChildren(); //获取所有子节点

this.cannons = node.getChildrenCount(); //获取子节点数量

node.active = false; //关闭节点(隐藏节点)

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

cc.game.removePersistRootNode(myNode); //取消常驻节点

4.动作操作

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);// 创建一个移动动作

node.runAction(action);// 执行动作

node.stopAction(action);// 停止一个动作

cc.sequence(action1,action2); //按顺序连续执行,先action1,后action2

cc.spawn(action1,action2); //同时执行,action1和action2一起执行

cc.repeatForever(cc.sequence(action1,action2)); //一直重复括号里的动作

 

5.计时器

//只用1次的计时器,2秒后执行

        this.scheduleOnce(function(){

            //一条或多条执行语句  

        },2); //(function(){},时间(s))

//每隔5秒执行1次

        this.schedule(function(){

            //一条或多条执行语句  

        },5);

//计算多次的计时器(1秒后,以0.1秒的执行间隔,执行10次)

        this.schedule(function(){

            //一条或多条执行语句

        },0.1,10,1); //(function(){},间隔时间,次数,多久后开始)

this.unscheduleAllCallbacks(this);//停止某组件的所有计时器

//自定义定时器执行内容(相比常规使用的定时器优势是:方便随时开启或关闭)

var cb= function(){

    //do something

};

this.schedule(cb,1);//启动定时器

this.unschedule(cb);//取消定时器

6.事件监听

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

node.on('touchstart',function(event){

    this.doSomething();

},this);  

var a = event.getID();//获取触点的ID

var a = event.getLocationX();//获取触摸点的坐标X

var b = event.getLocationY();//获取触摸点的坐标Y

cc.eventManager.addListener({

            event: cc.EventListener.KEYBOARD/TOUCH_ONE_BY_ONE,myfunction},self.node);

7.定义全局变量

window.DEFAULT_IP = "192.168.1.1";//任意脚本里可定义全局变量

//任意脚本里可定义全局变量

window.G = {

    a: null,

    b: null,

};

//任意脚本里可访问全局变量(切记定义全局变量的那个脚本已执行过)

G.a = 0;

G.b = 0;

var something = require(‘something’);

cc.game.addPersistRootNode(myNode);//常驻节点,必须位于层级的根节点(也可算全局节点吧)

module.exports = {

         config: 123

}

8.分辨率

//获得设备分辨率

var b = cc.director.getWinSizeInPixels()

var bx = b.width

var by = b.height

cc.view.getCanvasSize().width;//获得设备分辨率的宽度

cc.view.getCanvasSize().height;//获得设备分辨率的高度

cc.director.setDisplayStats(true);//显示帧数信息

9.音频控制

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)

10.存档操作

cc.sys.localStorage.setItem('存储标识名',变量名);//存储存档数据

var a = cc.sys.localStorage.getItem('存储标识名');//读取存档数据

cc.sys.localStorage.removeItem('存储标识名');//擦除存档数据

userData = {

    name: 'Tracer',

    level: 1,

    gold: 100

};

cc.sys.localStorage.setItem('userData', JSON.stringify(userData));//存取复杂对象数据

var userData = JSON.parse(cc.sys.localStorage.getItem('userData'));//读取复杂对象数据

11.判断平台

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');  //打开网页

12.监听和发射事件

this.node.pauseSystemEvents(true);//暂停节点系统事件

this.node.resumeSystemEvents(true);//恢复节点系统事件

this.node.targetOff(this);//移除所有注册事件

触摸监听:开始'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

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

var a = event.getScrollY();//获取滚轮滚动的 Y 轴距离,只有滚动时才有效

var a = event.getLocation();//获取鼠标位置对象,对象包含 x 和 y 属性

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

属性变化监听:位置'position-changed',宽高 'size-changed',旋转'rotation-changed',缩放'scale-changed'

ScrollView控件监听:滚动中'scrolling',停止滚动'scroll-ended'

用户自定义事件:

this.node.on('事件名',function,this);//注册监听

this.node.emit('事件名');//发送监听广播

this.node.off('事件名',function,this);//关闭监听

//注册带参数监听

this.node.on('事件名',function(event){

“具体方法函数内容”

},this);

//发送带参数的监听

this.node.emit('事件名',{id:1001});

cc.eventManager.addListener(listener, node);//添加事件

cc.eventManager.removeListener((listener);//移除事件

13.其他操作

cc.director.pause();//暂停

cc.director.resume();//继续

cc.director.end();//退出整个应用

cc.log(变量)  或 console.log(something);//输出想要的信息

let self = this;//锁定当前使用的this指向

node.getLocalZOrder();//层级获取

node.setLocalZOrder(1);//层级改变

cc.find('canvas/map' + num)//读取带变量的路径

cc.sys.openURL('Http://www.baidu.com');//打开网页

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CocosCreator常用API函数库(一)_基础入门
给sprite动态改变图片 首先将存放图片最外层文件夹命名为resources changeBj: function(){ var url = 'globalUI/video/gVideoPlayClick'; var _this = this; cc.loader.loadRes(url,cc.SpriteFrame,function(err,spriteFrame){ _this.isPlay.spriteFrame = spriteFrame; }); } ****跳转**** cc.direct
bering
2019/12/02
1K0
Cocos Creator常见问题汇总
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/03
2.2K0
等了那么久,终于等到新游戏啦!大炮英雄Cocos Creator实现,关注获取代码!
摆放一个背景图,在背景图上添加背景地面、开始按钮、4个角色选择按钮、游戏logo。
张晓衡
2019/10/22
1.1K0
等了那么久,终于等到新游戏啦!大炮英雄Cocos Creator实现,关注获取代码!
用 Cocos Creator 制作平台跳跃游戏
平台跳跃类游戏如《超级马里奥》《Celeste蔚蓝》等,非常考验玩家的操作和判断,有着非常本真的游戏乐趣。这类游戏乍一看,挺容易做的,但是要做好却不太容易。今天,我将使用 Cocos Creator v2.1.2 演示如何灵活快速地使用 Cocos Creator 来制作这类经典的横版平台跳跃类游戏,主要目的是帮助大家熟悉组件的用法,横版游戏实现方法很多,这里不做讨论!
一枚小工
2020/03/02
2.4K0
Cocos Creator | 炮弹发射效果模拟
1.全局监听touch事件,事件分为TOUCH_START(开始)、TOUCH_MOVE(移动)、TOUCHCANCEL(取消)、TOUCH_END(结束)四个状态,方法如下:
一枚小工
2020/03/02
1.9K0
Cocos Creator 制作第一个游戏
您正在阅读的手册文档包括了系统化的介绍 Cocos Creator 的编辑器界面、功能和工作流程,但如果您想快速上手体验使用 Cocos Creator 开发游戏的大体流程和方法,这一章将满足您的好奇心。完成本章教程之后,您应该能获得足够上手制作游戏的信息,不过我们还是推荐您继续阅读本手册来了解各个功能模块的细节和完整的工作流程。
bering
2019/12/02
2K1
【干货】Cocos Creator制作一个微信小游戏(下)
| 导语 微信小游戏都火成这样了,为什么不尝试一下? 我们的目标是使用Cocos Creator从零开始制作一个小游戏,并放到微信上玩。 上文链接:Cocos Creator制作一个微信小游戏(上) 四、游戏逻辑 开始游戏菜单逻辑 在Script文件夹上右键-新建-JavaScript,创建一个名字为Menu的代码文件。 双击一下资源管理器中的Menu场景,再在层级管理器中单击一下Canvas节点,显示节点的属性检查器,然后把Script目录中的Menu代码文件搬去到属性检查器中,以实现代码和场景的绑定。
腾讯NEXT学位
2018/12/04
6K2
【干货】Cocos Creator制作一个微信小游戏(下)
Cocos Creator之访问节点和组件
函数可以直接传入一个类名(对用户定义的组件而言,类名就是脚本的文件名,并且区分大小写。):
李小白是一只喵
2021/04/28
1.8K0
Cocos Creator之访问节点和组件
​Cocos Creator入门实战:桌球小游戏
在开始桌球小游戏之前,我们需要对creator有一定了解以及熟悉,对js语法有一定的了解。在开始同样还是希望大家能够仔细的阅读一遍官方文档,以便理解。
张晓衡
2019/09/11
2.6K0
​Cocos Creator入门实战:桌球小游戏
cocos creator鼠标键盘事件总结
最近忙着新项目,要着手学习Cocos Creator,翻遍网上资料,做一下总结,下面是我觉得写的不错文章,不用再去官网一个个查阅了,后期再遇到相关的知识在这篇文章下面添加,读者如果有其他方法或者本片文章没有提到过的,欢迎在品论下方留言!我是 BerKing,谢谢大家!
bering
2019/12/02
2.3K0
CocosCreator一步一步实现重力球游戏
通过手机陀螺仪,调整手机,让球从上一层的间隔中落到下一层,楼层会不断上涨,如果球碰到上方或者下方的火焰,游戏结束。
一枚小工
2020/03/02
1.6K0
Cocos2d-x3.0TestCpp文件夹笔记(二)[通俗易懂]
3.Actions-Basic:此demo中体现ccp由Point取代 ①ActionManual:直接设置精灵的属性demo。
全栈程序员站长
2022/07/10
2650
cocos creator | 用摄像机实现残影幻影拖尾效果
利用摄像机拍摄角色,然后投影到多个显示画布,给画布节点设置不同的透明度,最后让画布节点跟随角色移动。
张晓衡
2019/10/08
1.4K0
cocos creator | 用摄像机实现残影幻影拖尾效果
cocos2d-js 入门 (主要是HTML5)
cocos2d-js是cocos2d-x的JavaScript版本,真正跨全平台的游戏引擎,采用原生JavaScript语言,可发布到包括Web平台,iOS,Android,Windows Phone8,Mac,Windows等平台。 利用cocos2d-js开发HTML5游戏/动画,我们可以通过SDK也可以直接使用js类库: l SDK下载:http://cn.cocos2d-x.org/download/ l js类库:http://www.cocos2d-x.org/filecenter/jsbuil
用户1258909
2018/07/03
11K0
cocos2dx 象棋
/******************************************************************* * Copyright(c) 2017 * All rights reserved. * * 文件名称: Chess.cpp * 简要描述: Chess * * 创建日期: 2017-07-21 * 作者: gongluck * 说明: * * 修改日期: 2017-07-24 * 作者: gongluck * 说明: **************
_gongluck
2018/03/08
2K0
cocos2dx 象棋
Cocos Creator 实现左右跳游戏
游戏开始后,点击屏幕左右两侧,机器人朝左上方或右上方跳一步,如果下一步有石块,成功得1分,否则游戏结束。
张晓衡
2019/09/12
8390
Cocos Creator 实现左右跳游戏
Cocos Creator实现左右跳游戏
游戏开始后,点击屏幕左右两侧,机器人朝左上方或右上方跳一步,如果下一步有石块,成功得1分,否则游戏结束。
一枚小工
2019/09/27
1.2K0
Cocos Creator实现左右跳游戏
狂热「小工」的9款Creator游戏源码及图文教程,等你来拿!
他在 Cocos 论坛上公开了自己9款小游戏作品,完成度相当之高,是不可多得的Creator学习资源,下面是论坛链接地址:https://forum.cocos.com/t/cocoscreator/80131/43
张晓衡
2019/09/11
1.7K0
狂热「小工」的9款Creator游戏源码及图文教程,等你来拿!
独孤九剑与乾坤大挪移—uikiller插件系统
上篇《雷神之锤》介绍了uikiller的基本用法,有人说长按功能可以取名为蓄力攻击、重击,我觉得还真是可以的,但就是感觉招数名字不够大气。在这里还要给大家道个歉,上篇中我说了这一样句话:
张晓衡
2019/09/11
5550
独孤九剑与乾坤大挪移—uikiller插件系统
cocos creator实现自定义进度条
本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客www.php20.cn
仙士可
2021/10/27
1.5K0
推荐阅读
相关推荐
CocosCreator常用API函数库(一)_基础入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档