首页 > 其他分享 >Cocos Creator中Component使用详解

Cocos Creator中Component使用详解

时间:2023-11-14 09:34:14浏览次数:29  
标签:Cocos console log Creator cc Component 组件 dt 节点

序言

在Cocos Creator游戏开发中,组件是使用是非常频繁,对于组件的入口函数、常用属性、组件的操作等,必须做到非常熟悉。

一、组件入口函数

1: onl oad: 组件加载的时候调用, 保证了你可以获取到场景中的其他节点,以及节点关联的资源数据 2: start: 也就是第一次执行 update 之前触发 3: update(dt):组件每次刷新的时候调用,距离上一次刷新的时间(会在所有画面更新前执行) 4: lateUpdate(dt) 刷新完后调用(会在所有画面更新后执行); 5: onEnable: 启用这个组件的时候调用; 6: onDisable: 禁用这个组件的时候调用; 7: onDestroy: 组件实例销毁的时候调用;

1.  `    onl oad () {`

2.  `        console.log("onLoad is called!");`

3.  `    }`

5.  `    start () {`

6.  `        // this表示当前组件实例,this.node 当前组件实例挂载的节点,父类Component的属性`

7.  `        console.log("start is called!", this, this.node, this.node.name);`

8.  `    }`
1.  `    // dt:每次更新的时间间隔`

2.  `    // dt不是固定的值 |---|------|--|`

3.  `    // dt与设备帧频有关FPS:frame per second 60FPS,1/60=0.0167s`

4.  `    // 使用注意事项:60FPS 0.0167s, 30FPS 0.033s`

5.  `    // [1] 60×50,30×50,保证在不同设备运行效果一致`

6.  `    // [2] 保证在同一设备上匀速运动`

7.  `    // [3] 通过dt累计时间,做到定时周期运动`

8.  `    update (dt) {`

9.  `        console.log("update,dt=", dt);`

10.  `        this.player.x += this.speed * dt;`

11.  `    }`

 

 

二、cc.Component属性

1: 组件类: 所有组件的基类; 2: node: 指向这个组件实例所挂载的这个节点(cc.Node); 3: name: 这个组件实例所挂载的节点的名字<组件的名字>; 4: properties: { } 属性列表; (1) name: value, 数,bool, 字符串; (2) 位置,颜色, 大小: cc.v2(0, 0), cc.color(0, 0), cc.size(100, 100) (3) 组件:{
type: 组件类型, 系统类型,也可以require自己编写的组件类型 default: null or []

(4)其他: 打开cocos creator源码,找到参考,然后移动到代码里面;

1.  `import CustomComponent from "./CustomComponent";`

2.  `const {ccclass, property} = cc._decorator;`

4.  `@ccclass`

5.  `export default class GameMgr extends cc.Component {`

7.  `    @property({type:cc.Integer, tooltip:"方块运动速度",displayName:"速度",slide:true,step:5,min:50, max:200,})`

8.  `speed : number = 50;`

10.  `    @property({type:cc.Node, tooltip:"要运动的节点",})`

11.  `player : cc.Node = null;`

13.  `    @property({type:[cc.SpriteFrame], tooltip:"图片数组"})`

14.  `spriteFrame : Array<cc.SpriteFrame> = [];`

16.  `//label : cc.Label = null;  // 查API文档源码,学习`

18.  `    @property({type:CustomComponent, tooltip:"自定义的组件类"})`

19.  `    customComp : CustomComponent = null;`

 

 

 

 

通过官网API查看Label源码,以及通过Cocos Creator编辑器比对,学习,方法如上。

三、组件添加查找删除

1: addComponent(组件的类型): 向节点上添加一个组件实例, 返回添加好的组件实例; 2: getComponent(组件类型): 查找一个为指定类型的组件实例(如果有多个,第一个匹配); 3: getComponents(组件类型): 查找这个节点上所有这个类型的组件实例; [inst1, inst2, inst3, ...] 4: getComponentInChildren(组件类型): 在自己与孩子节点里面查找; 5: getComponentsInChildren (组件类型): 在自己与孩子节点里面查找; 6: destroy(): 从节点中删除这个组件的实例;

四、Shedule定时器操作

1: sheduleOnce(函数, time): time秒后启动一次定时器; 2: schedule(函数, time, 次数, 多长时间后开始); 执行的次数为(次数 + 1), cc.macro.REPEAT_FOREVER 3: unschedule(函数); // 取消这个定时器操作; 4: unscheduleAllCallbacks 取消所有的定时器操作; 注意,如果节点或组件没有激活是不会调用的;

1.  `        console.log("=======fenggexian========");`

2.  `        this.schedule(function(){`

3.  `            console.log("每1秒执行一次,共执行三次,延迟2秒后执行");`

4.  `        }, 1, 20, 2);    // 执行3+1次`

6.  `        // this.scheduleOnce(function(){`

7.  `        //     console.log("定时执行一次,延迟1秒后执行!");`

8.  `        // }, 1);`

10.  `        let callback = function(){`

11.  `            console.log("回调函数");`

12.  `        };`

13.  `        this.schedule(callback, 1, cc.macro.REPEAT_FOREVER, 2);`

14.  `        //this.unschedule(callback);`

15.  `        //this.unscheduleAllCallbacks();`

17.  `        // 特定的时间之后再取消定时任务`

18.  `        this.scheduleOnce(function(){`

19.  `            //console.log("5秒后取消callback定时任务");`

20.  `            //this.unschedule(callback);`

21.  `            console.log("5秒后取消所有定时任务");`

22.  `            this.unscheduleAllCallbacks();`

23.  `        }.bind(this), 5);`

 

标签:Cocos,console,log,Creator,cc,Component,组件,dt,节点
From: https://www.cnblogs.com/bycw/p/17830912.html

相关文章

  • 来来来,一文让你读懂Cocos Creator如何读写JSON文件
    前言在游戏开发过程中,读取配置文件是必不可少的,而使用JSON做配置文件又比较常见,本文重点给大家讲述如何在CocosCreator开发中读取和解析JSON数据文件以及如何写JSON文件。一、JSON简介1.什么是JSONJSON的英文全称是JavaScriptObjectNotation,即JavaScript对象表示法。2.J......
  • Cocos Creator之不规则的点击区域
    一,前景1,点击区域不是一个矩形,如下图所示二,新建一个节点(Node)   1,添加Sprite组件  2,继续添加Button组件3,添加PolygonCollider2D组件三,核心代码import{_decorator,Component,Node,isValid,PolygonCollider2D,Intersection2D,UITrans......
  • Cocos Creator 性能调优之《如何优化2D/3D Drawcall》
    游戏渲染是性能开销的大头,在项目开发中掌握性能调优中渲染优化相关技巧是非常重要的。渲染优化又可以从很多方面来入手,其中降低Drawcall是非常重要的手段之一。接下来从4个点来详细的讲解基于CocosCreator3.x如何做Drawcall的性能优化:为什么降低Drawcall能提升渲染性能;常用合......
  • Cocos Creator中的向量cc.Vec2和矩形cc.Rect
    前言在CocosCreator游戏开发中,经常需要使用向量和矩形,这篇文章我们来总结下其常见用法。一、Vec2二维向量 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。 1.`letv1:cc.Vec2=......
  • Cocos Creator 「无侵入」资源加密方案
    前言CocosCreator打包后的素材资源,如:图片,声音等,默认是保持原始格式,只要遇到破解党,那么他们极有可能很简单就直接获取到这部分素材资源。针对这个问题,大部分同学都会有一种资源加密的需求,即对打包后的资源进行加密,让破解党不那么容易获取到资源。对啦!这里有个游戏开发交流小组......
  • fgui 怎么将"UI空间下的世界坐标"转换成"fgui空间下的世界坐标( global pos )" cocosc
    嗨~如果本文对你有帮助,点个推荐吧!这样能让文章在搜索中更靠前,帮助到更多有需要的人!首先通过坐标系转换一步步地进行计算我尝试过,但卡在了将屏幕坐标转换为fgui空间的全局坐标上。但发现了一个巧妙的做法。//随便的一个Cocoscreator的NodevaranyCCUINode=this._labe......
  • Visual Components应用解决方案 衡祖仿真
    VisualComponents可为客户量身设计及规划自动化产线系统,作为全方位的数位规划工具,它能够从制程规划、生产到销售皆能够整合在单一平台,有助于内部的技术沟通及外部销售。此外利用VisualComponents整合物流及机器人模拟功能,可以去帮助客户及相关企业在研发前进行产能确认,减少不必要......
  • Cocos Creator动作系统和缓动系统总结
    动作系统就是可以在一定的时间内实现位移、旋转、缩放、跳动等各种动作。需要注意的是,动作系统跟CocosCreator编译器的动画系统不同,动作系统是面向程序员的API接口,而动画系统是通过编译器来设计,它们服务于不同的使用场景,动作系统通常适合做一些简单的位移、旋转等动作,而动画系......
  • Cocos Creator中Sprite组件使用详解
    在CocosCreator游戏开发中,Sprite组件是非常重要的组件之一,也是使用最频繁的组件之一。因此,必须对其非常熟悉。Sprite组件简介1:游戏中显示一个图片,通常我们把这个叫做”精灵”sprite2:cocoscreator如果需要显示一个图片,那么需要在节点上挂一个精灵组件,为这个组件指定要......
  • ASP.NET Ajax exception - Two components with the same id can't be added to the a
    There'sacoupleofexceptionstolookoutforwhenyoustartdevelopingcustomASP.NETAjaxclientcontrols. Theyare:MicrosoftJScriptruntimeerror:Sys.InvalidOperationException:Twocomponentswiththesameid'ctl00_MainContentPlaceHold......