cocos Creator计时器schedule的使用

在游戏开发中,经常会用到计时器,在cocos引擎中,为我们默认提供了多种计时器的使用。在最新的cocos开发工具Cocos Creator中,我们有4种计时器可以使用,分别是js自带的setTimeOut、interval以及cocos的schedule和scheduleOnce,setTimeOut和scheduleOnce都是执行几次操作,指定一定时间后执行,interval和schedule都是可以指定执行次数的。这里主要对schedule进行相关的说明,因为这里面有一个坑。

当我们将一个组件挂在是一个控件上后,例如,我们在一个飞机大战的游戏中,想创建子弹,就可以用schedule每隔一段时间进行创建,或者,每隔一段时间,进行一些其他的操作等。但是,最近在使用schedule的时候,发现了一个大坑,或许,也是自己对这个东西不熟悉,但不管怎样,还是将这个东西分享出来,方便他人的使用,防止别人入坑,也算是记录一下自己在开发中的心得。大家都知道,schedule一般可以传3或者4个参数,3个参数的使用如下:

component.schedule(function() {
     this.doSomething();
 }, interval, repeat);

如果就是当前的脚本中,就可以直接用this.schedule了,第一个就是回调方法,一般来说,如果要用当前组件中的方法,需要写成function(){}.bind(this)的形式,否则会报错,这里的interval当然是时间间隔,以秒为单位,每隔interval就执行一次,repeat就是重复执行的次数,默认情况下,当repeat为0的时候,会执行一次,这个repeat表示重复执行次数,是在已经执行过一次之后的重复次数,这点值得注意。还有一种用法,是延时执行的,用法如下:

component.schedule(function() {
     this.doSomething();
 }, interval, repeat, delay);

这里只不过是多了一个delay,别的没有什么区别,总共会执行里面的方法repeat+1次,第一次在delay时间之后执行,然后每隔interval秒执行一次里面的方法。然而,问题来了,如果将delay设置成0,是否会立刻执行呢?显然,并不是这样的!如果将delay置为0,默认情况下,第一次执行仍然会延时,而且延时时间是interval。因此,在开发中,如果要开启多个计时器,而且,每隔计时器的延时时间都不一样,但是,却有一定规律,例如,在for循环中创建5个计时器,每个计时器的delay = i;这样就会出问题,第一个计时器的delay设置为0,但是实际上变成了interval,为了避免这种事情发生,可以将让delay = i + 0.1,只要给一个初始的很小的值就好了,或者,判断一下,当i = 0 的时候,就不调用带delay的方法,直接调用第一个方法就行了,这样,就避免了这种问题的发生。

Cocos Creator编辑器提供了一套强大的功能,使开发者可以轻松地编写工具来增强开发流程。以下是Cocos Creator编辑器如何编写工具的步骤: 1.熟悉Cocos Creator编辑器:首先,开发者需要熟悉Cocos Creator编辑器的基本操作和功能。这包括了场景编辑、节点操作、组件配置等。 2.了解Cocos Creator的插件机制:Cocos Creator提供了插件机制,开发者可以通过插件扩展编辑器的功能。开发者可以在官方文档中找到关于插件开发的详细说明。 3.确定工具的需求:开发者需要明确工具的需求和目标。这可以是一项新功能、自动化操作、场景批量处理等。确保明确工具的功能和预期效果。 4.开发插件:根据工具的需求,开发者可以通过插件机制来实现工具。插件可以包括自定义的编辑器窗口、面板、节点操作脚本等。 5.使用API扩展功能:Cocos Creator提供了丰富的API来扩展编辑器的功能。开发者可以使用这些API来实现工具的核心功能。 6.测试和调试:在编写工具过程中,开发者需要进行反复的测试和调试以确保工具的正确性和可靠性。这可以包括单元测试、集成测试和用户界面测试等。 7.发布和分享工具:完成工具开发后,开发者可以考虑将其发布和分享。开发者可以将工具打包成插件,供其他开发者使用和安装。 总之,使用Cocos Creator编辑器编写工具可以有效地提高开发效率和质量。通过插件机制和丰富的API,开发者可以根据自己的需求自定义和扩展编辑器的功能。希望这些步骤能对您编写Cocos Creator编辑器工具有所帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值