cocos creator 学习总结

一、基本内容:

1.cc.Label相关:

(1)动态创建cc.Label : var node = new cc.Node('text'); node.addComonpnet(cc.Label);

(2)  设置文本内容:node.getComponent(cc.Label).string = 'test'; 设置大小:node.getComponent(cc.Label).fontSize = 30 文本对齐:参考creator中

(3)  如何动态获取文本的宽度: node.getComponent(cc.Label).string = 'test'; var getWidth = node.width;这样即可获得宽度;注意事项:要让node所在父节点active =true,即让js脚本调用onload函数之后,才能正确获取with;

(4) 文本长度超出creator中设定长度时不显示:node.getComponent(cc.Label).overFlow = cc.Label.Overflow.CLAMP 还有其它几种模式暂时没用到后续研究,这里说下含义,NONE(无样式)、CLAMP(截断)、SHRINK(自动缩小文字以适应大小)、RESIZE_HEIGHT(自增长高度)

2.cc.Sprite相关

(1)动态创建cc.Label : var node = new cc.Node('text'); node.addComonpnet(ccSprite);

(2)设置图片:node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);

a) 精灵帧获取的获取方法1:new cc.SpriteFrame(texture); 优点:动态加载,缺点:会有异步问题

那么texture如何获取?cc.loader.load({url: cc.mg.util.get_wxhead(userData.url), type: 'jpg'}, function (err, texture) {
                var head = new cc.SpriteFrame(texture);
               dialog.getChildByName('face').getChildByName('mask').getChildByName('tx').getComponent(cc.Sprite).spriteFrame = head;
            });

b) 精灵帧获取的获取方法2:界面绑定的脚本,即.js文件properties: 中定义 frame : cc.SpriteFrame,然后在creator中将图片拉倒这个frame上。优点:初始化加载,方便使用。缺点:会有内存大,加载速度慢

3.cc.Animation相关

(1)动画播放和停止:node.getComponent(cc.Animation).play;node.getComponent(cc.Animation).stop();

(2)注册动画播放完成事件:node.getComponent(cc.Animation).on('finished', function(){cc.log('finish')};

(3)备注:creator中默认有个playOnLoad属性需要注意:含义是在第一次active设为可见的时候会自动播放动画,如果不需要可以不勾选。

4.ToggleGroup相关

定义:组合框(多项中只能选择一项)

(1)怎么获取toggle(其中的一项):this.togglegroup.toggleItems[0];这代码访问第一项。

(2)怎么获取toogle是否选中:this.togglegroup.toggleItems[0].check();调用check()方法

(3)备注:在onload获取调用this.togglegroup.toggleItems.length获取的长度为0,所以只能在start()函数中调用,creator设定的
5.cc.Button相关

(1)设置按钮灰态:node.getComponent(cc.Button).interactable = true;与creator中的EnableAuto中配合;表现上是会灰色了,但是按钮还是可以点击,还得通过事件回调来处理,按下return;

(2)事件注册:btn.on('touchend' || 'mouseup', function(e) {var btn =  e.currentTarget; };在回调内部获取按钮自己

(3)修改按钮的图片:即修改cc.Sprite组件,参考上面cc.Sprite相关

6. Layout相关

(1)这个布局控件在孩子设置为隐藏的时候,会自动调整孩子的位置,可以设置为左对齐,居中对齐等等;但是现在有个bug:在孩子的类型不同时,自动调整孩子的位置时不对,需要用代码控制孩子的位置,如果孩子多的话,最好还是不要用Layout布局。

7.RichText相关

(1)用法node.getComponent(cc.RichText).string = '<color=#FF0000>' +  '我是富文本' + '</c>';

(2)换行增加字符串‘<br/>’;

8.定时器相关

(1)创建:

a) this.schedule(this.updatePlayerTime,1); 参数1:callback 参数2:间隔;备注:这个this一定要挂接在组件上的脚本

b) cc.director.getScheduler().scheduleCallbackForTarget(this,function(){},1,0);

(2)销毁:

a) this.unschedule(this.updatePlayerTime); 销毁所有:this.unscheduleAllCallbacks();

b)  cc.director.getScheduler().unscheduleCallbackForTarget(this, this.timer);销毁所有:cc.director.getScheduler().unscheduleAllForTarget(this);

(3)只执行一次:this.scheduleOnce()

9.操作事件相关(点击弹起移动事件)

(1)弹起事件:node.on('touchend' || 'mouseup', function(e) {})

(2)按下事件、长按事件:node.on('touchstart',function(e){})

(3)移动事件:node.on('touchmove',function(e){})

(4)取消事件:node.on('touchcancel',function(e){}) 离开精灵的时候会触发这个事件

10.cc.EditBox相关

暂时未用到

二、进阶内容:

1.全局系统事件:

a)发送:var data= {};cc.systemEvent.emit('eventName', data);没有data:cc.systemEvent.emit('eventName');

b)注册事件:cc.systemEvent.on('eventName', this.eventCallBack, this);

c)取消事件注册:cc.systemEvent.off('eventName', this.eventCallBack, this);

d)事件回调函数:eventCallBack:function(e)    {       var data= e.detail;};

2.节点动态创建销毁:

a)var node = new cc.Node("name"); 

b) node.destroy();

3.根据现有的节点创建节点:

var newNode = cc.instantiate(oldNode);

4.实例化预制:

        cc.loader.loadRes('prefab/resName', cc.Prefab, function(err, prefab){
                var newNode = cc.instantiate(prefab);
            });

5.资源的加载:

cc.loader.load();

cc.loader.loadRes();

cc.loader.loadResArray();

cc.loader.loadResDir();

cc.loader.loadResDir加载资源有没有同名覆盖的问题;比如A目录下a.png;B目录下也有a.png代码中会显示哪个png,如果用自动图集肯定没这问题

6.资源的释放:

 cc.loader.releaseRes(resPath);目前用在界面动态创建,在关闭界面的时候用这个函数释放当前界面资源prefab;

看下cc.loader类中的释放函数,目前项目中并没有用到复杂的内存释放。

7.点A移动到点B,B有父节点,坐标如何转换?

var pos4 = this.pointB.convertToWorldSpaceAR(cc.p(0,0));
var pos5 = this.pointA.parent.convertToNodeSpaceAR(pos4);
var moveTo = cc.moveTo(0.5, pos5);

8.场景切换:

cc.director.loadScene(scene_name, callback); //scene_name为creator中.fire的文件名


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴为您回答!Cocos Creator是一款基于Cocos2d-x框架的游戏开发工具,提供了一个友好的图形化界面和丰富的功能,方便开发者快速制作游戏。 如果您想学习Cocos Creator,以下是一些学习资源: 1. 官方文档:Cocos Creator官方网站提供了详细的开发文档和教程,是学习的第一步。 2. 视频教程:您可以在YouTube或者Bilibili上搜索Cocos Creator视频教程,从中学到更多实用的技巧。 3. 开源项目:GitHub上有许多Cocos Creator开源项目,您可以通过阅读代码来加深对Cocos Creator的理解。 4. 论坛和社区:Cocos官方论坛和社区是您寻求帮助和交流的好地方。 希望这些资源能帮助您快速学习Cocos Creator,开发出更多精彩的游戏。 ### 回答2: Cocos Creator是一款面向游戏开发者的跨平台游戏引擎,它具有易用性、高效性、灵活性和扩展性的特点,因此备受开发者青睐。学习Cocos Creator的教程将帮助您深入了解引擎的功能和使用方法。 首先,您可以通过官方网站或在线社区获得Cocos Creator学习教程。官方网站上提供了大量的教程和文档,包括入门教程、项目案例和API文档等。这些教程以简明的语言和丰富的示例代码,帮助开发者逐步了解Cocos Creator的各个模块,如场景编辑、粒子系统、动画和物理系统等。 此外,Cocos Creator的在线社区也是学习的宝贵资源之一。社区中有众多开发者分享自己的心得和经验,您可以在其中提问、参与讨论,从中获取解决问题的方法和学习的灵感。 除了官方提供的教程和社区资源,您还可以参考一些优秀的第三方教程。这些教程可能以书籍、视频教程或博客的形式存在,通过借鉴他人的经验,您可以更加深入地了解Cocos Creator的使用技巧和开发实践。 最后,除了学习教程,实践也是学习Cocos Creator的重要一环。通过自己亲自动手完成一些小项目或实验,您可以更好地理解和掌握引擎的各个功能。在实践中遇到问题时,可以利用教程和社区资源进行查找和求助,以加深对Cocos Creator的理解。 总之,通过官方教程、社区资源以及第三方教程的学习,结合自己的实践经验,您将能够逐步提高自己的Cocos Creator开发技能,实现更加出色的游戏开发成果。 ### 回答3: Cocos Creator是一款面向游戏开发的跨平台开发工具,学习教程涵盖了从入门到进阶的内容,可以帮助开发者快速掌握该工具的使用。 首先,Cocos Creator学习教程介绍了该工具的基本概念和操作界面,帮助用户熟悉工具的各个模块和功能。教程会详细介绍如何创建项目、导入资源、设计场景等基础操作,让开发者对Cocos Creator有一个全面的了解。 其次,教程会介绍如何利用Cocos Creator进行游戏的开发。开发者可以学习到如何创建游戏对象、添加组件、编写脚本等内容,通过实践项目,了解游戏开发的整个流程。教程还会介绍如何添加动画效果、碰撞检测、物理模拟等高级功能,让游戏更加生动和有趣。 除了游戏开发,Cocos Creator还支持跨平台的应用开发。教程会介绍如何使用Cocos Creator进行应用的开发,包括UI设计、用户交互、数据存储等方面的内容。开发者可以学习到如何调用原生平台的API,实现更多功能和扩展。 最后,教程会提供一些实战案例供开发者参考,让他们可以更好地理解和应用所学知识。此外,Cocos Creator官方还提供了丰富的在线文档和社区支持,开发者可以通过官方网站和论坛获取更多资料和帮助。 总之,通过Cocos Creator学习教程,开发者可以系统地学习该工具的使用方法,并掌握游戏开发和应用开发的基本技能。无论是初学者还是有一定经验的开发者,都可以从中受益,提升自己的开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值