关于怪物生成重叠

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;
        }


    }
上一篇下一篇

猜你喜欢

热点阅读