cocos js update()

cocos js update(),第1张

概述环境: Win7 64位 Cocos2d-JS v3.1 Cocos Code IDE v1.0.0.Final 正文: 主要分为两种方式,一种是直接用延时函数,比如scheduleCallbackForTarget,scheduleOnce等;另外一种就是在每帧的更新函数里面进行控制。 1. 第一种直接使用函数的方式 这里只谈使用要注意的地方,至于函数参数,官方的API文档介绍的已经很清楚了(A

环境:

Win7 64位

Cocos2d-Js v3.1

Cocos Code IDE v1.0.0.Final


正文:

主要分为两种方式,一种是直接用延时函数,比如scheduleCallbackForTarget,scheduleOnce等;另外一种就是在每帧的更新函数里面进行控制。


1. 第一种直接使用函数的方式

这里只谈使用要注意的地方,至于函数参数,官方的api文档介绍的已经很清楚了(API查询地址:http://www.cocos2d-x.org/reference/HTML5-Js/V3.0/index.HTML 在左上角输入cc.scheduler )

以this.scheduleOnce(回调函数,延迟时间)为例,这里要注意的是回调函数的使用。


1.1 当回调函数为无参时,如:

@H_403_48@ 1 2 3 @H_403_48@ noparameter:function(){ cc. log ( "noparameter!!" ); },

那么用的时候写函数名,不带括号而使用了(假如延迟时间为3秒):

@H_403_48@ 1 @H_403_48@ this .scheduleOnce( this .noparameter,3); //回调函数带不带this视其作用域而定


1.2 当回调函数为有参时,如:

@H_403_48@ 1 2 3 @H_403_48@ haveParameter:function(i){ cc. log ( "Havaparameter" +i); },


那么使用的时候为了能正常延时,需要在外面套一层function name(){},再调用,不然就会在程序一开始时运行,没有延时效果,不过这样做,实际上变成了上面无参时的情况,在一个无参的函数里面调用其他函数而已:

@H_403_48@ 1 2 3 @H_403_48@ this .scheduleOnce(functiona(){ this .haveParameter(1111); //回调函数带不带this视其作用域而定 },5);


2. 第二种在每帧更新函数里进行控制

以layer为例,在初始化的时候(ctor函数return true 前,onEnter等其他地方也可以,不过最好在初始化时)添加:

@H_403_48@ 1 @H_403_48@ this .scheduleUpdate(); //表示使用每帧更新函数

接着重写layer的update方法:(这里先定义了一个作用域在layer的变量time)

@H_403_48@ 1 2 3 4 5 @H_419_275@ 6 7 8 @H_403_48@ update:function(dt){ this . time +=dt; //dt为每一帧执行的时间,把它加起来等于运行了多长时间 if ( this . time >7){ cc. log ( "每7秒显示一次" ); this . time =0; //每7秒重置为0,以达到循环显示 @H_419_275@ } //cc.log(this.time);//time的当前时间 },
总结

以上是内存溢出为你收集整理的cocos js update()全部内容,希望文章能够帮你解决cocos js update()所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存