关于怪物生成重叠
2020-01-13 本文已影响0人
沉麟
我需要在某个怪物生成点,持续生成怪物并让他向前走,但是不确定一次生成几个,生成的位置固定,要避免都重叠在一起那么
需要做一种定时生成的计时器,实时监控,如果我这次需要生成一个怪物,那么直接就生成出来,如果超过一个,下一个间隔一段时间生成,给前面的的怪物时间让他先走,避免重复。
首先需要一个类型数组,把需要生成的怪物类型存起来(int数组),然后在调用生成方法的时候,先把需要生成的类型存进数组中,creaHero(type);其他地方调用此方法生成怪物,然后需要在开一个计时器,Laya.timer.frameLoop(5, this, this.onFrameUpdate.bind(this));5帧检测一次,声明一个变量createIntervalTime记录时间,如果createIntervalTime小于0并且数组中的元素大于或等于1,那么调用真正的生成方法一个,生成数组中最先放进去的怪物,重置时间,否则createIntervalTime-=5;
private createIntervalTime: number = 0;
private createCount: number[] = [];
constructor() {
Laya.timer.frameLoop(5, this, this.onFrameUpdate.bind(this));
}
public createHero(type: number) {//外部创建角色时调用此方法
this.createCount.push(type);
// return null;
}
public createInterval(type: number): Laya.Image {
return null;;
}
onFrameUpdate() {
if (this.createIntervalTime <= 0 && this.createCount.length >= 1) {
this.createInterval(this.createCount.shift());
this.createIntervalTime = 50;
} else {
this.createIntervalTime -= 5;
}
}