cocos-creator使用记录17_计时器

1.计时器
1.1.通用计时器
this.schedule(function() {  
     this.doSomething();  
 }, interval, repeat, delay); 
interval是执行的间隔时间,单位为秒。必须。
repeat就是重复执行的次数。可选。
默认情况下,当repeat为0的时候,会执行一次。
delay是开始延迟时间。


1.2.可以使用回调函数本身来取消计时器
this.count = 0;
this.callback = function () {
if (this.count === 5) {
// 在第六次执行回调时取消这个计时器
this.unschedule(this.callback);
}
this.doSomething();
this.count++;
}
this.schedule(this.callback, 1);


1.3.只执行一次的计时器
this.scheduleOnce(function() {
    // 这里的 this 指向 当前脚本
    this.doSomething();
}, 2);
上面的计时器将在两秒后执行一次回调函数,之后就停止计时。


2.实例
Game.js------------
onLoad: function() {
//生成敌人-小型
this.schedule(function(){
var enemy = cc.instantiate(this.enemy1);
enemy.parent = this.node;
enemy.getComponent("Enemy").init(1);
}, 0.5 + Math.random()*0.5);
//生成敌人-中型
this.schedule(function(){
var enemy = cc.instantiate(this.enemy2);
enemy.parent = this.node;
enemy.getComponent("Enemy").init(2);
}, 2 + Math.random()*2);
//生成敌人-大型
this.schedule(function(){
var enemy = cc.instantiate(this.enemy3);
enemy.parent = this.node;
enemy.getComponent("Enemy").init(3);
}, 4 + Math.random()*4);
//生成敌人-Boss型
this.schedule(function(){
var enemy = cc.instantiate(this.enemy4);
enemy.parent = this.node;
enemy.getComponent("Enemy").init(4);
}, 30 + Math.random()*20);
},
以上是一款打飞机小游戏的代码片段。

猜你喜欢

转载自blog.csdn.net/haibo19981/article/details/80452531