Javascript - задержка времени между порождениями - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть эта функция (не стесняйтесь использовать ее, если вам это нужно, ребята), которая генерирует для меня монстров в случайных положениях за пределами игровой площадки.После того, как монстр сгенерирован, монстр следует по пути к персонажу.

Но проблема в том, что монстры генерируются одновременно.То, что я пытаюсь сделать, это поставить некоторую задержку между порождениями.Мол, 1-й монстр генерируется в начале игры;второй монстр я хочу быть сгенерирован через 1 секунду.Любые идеи, как я могу достичь этого?

Я пытался создать переменную времени, которая повторяется, а затем порождает врага, если счетчик> время.Но это, кажется, не работает должным образом


function init(){

}

function update(dt){

}

function signal(name, value){

    let x1 = 6;
    let x2 = -6;
    let y1 = 20;
    let y2 = 1;
    let cadran =  Math.floor(Math.random() * (+4 - +1)) + +1; 
    if(value){
        for(i=0;i<5;i++){

            if(cadran == 1){
                monsterGenerator(this,x2,x1,y1 ,1);
            }

            if(cadran == 2){
                monsterGenerator(this,x2,x1,y2,2);
            }

            if(cadran == 3){
                monsterGenerator(this,y2,y1,x1,3);
            }


            if(cadran == 4){
                monsterGenerator(this,y2,y1,x2,4);
            }

            cadran++;
            if(cadran==5){
                cadran = 1;
            }
        }
    }

}

function monsterGenerator(ob,min,max,stat,rand) {

    let assetName = ob.attribute('Asset Name');
    let ent = ob.scene().create(assetName);
    if(ent == null) error('Asset "'+assetName+'" does not exist');
    let pos = ob.entity().worldPosition();
    let rot = ob.entity().rotation();
    let scl = ob.entity().scale();
    let random = Math.floor(Math.random() * (+max - +min)) + +min; 

       if(rand==1){
        ent.setPosition(pos.x = random, pos.y =stat , pos.z);
       }
       if(rand==2){
        ent.setPosition(pos.x = random, pos.y =stat , pos.z);
       }
       if(rand==3){
        ent.setPosition(pos.x = stat, pos.y =random , pos.z);
       }
       if(rand==4){
        ent.setPosition(pos.x = stat, pos.y =random , pos.z);
       }

    ent.setRotation(rot.x, rot.y, rot.z);
    ent.setScale(scl.x, scl.y, scl.z);


}

...