Javascript 我的Html画布游戏中的延迟

Javascript 我的Html画布游戏中的延迟,javascript,html,canvas,lag,Javascript,Html,Canvas,Lag,我开始用Html画布和JavaScript制作一个视频游戏:你是一个外星人,必须射杀其他红色外星人。如果你靠近一个外星人(敌人),敌人开始向你的方向移动。现在,如果玩家靠近一个敌人,那就是另一个敌人附近(但看不到玩家),游戏开始延迟 这是距离的函数,移动到函数: this.moveto = function(vec,vel){ distX = vec.x - vec.offsetx - this.x distY = vec.y - vec.offsety - this.

我开始用Html画布和JavaScript制作一个视频游戏:你是一个外星人,必须射杀其他红色外星人。如果你靠近一个外星人(敌人),敌人开始向你的方向移动。现在,如果玩家靠近一个敌人,那就是另一个敌人附近(但看不到玩家),游戏开始延迟

这是距离的函数,移动到函数:

this.moveto = function(vec,vel){

    distX   = vec.x - vec.offsetx - this.x
    distY   = vec.y - vec.offsety - this.y

    dist    = Math.sqrt(distX*distX + distY*distY)
    distX /= dist
    distY /= dist
    i+= 1
    if(dist >= 2){
    this.x += (distX/100)*vel
    this.y += (distY/100)*vel
    }

}

this.dist = function(vec){

    dist2X  = vec.x - vec.offsetx - this.x
    dist2Y  = vec.y - vec.offsety - this.y

    dist2   = Math.sqrt(dist2X*dist2X + dist2Y*dist2Y)

    return(dist2)

}
这就是它的使用方式:

for(i = 0; i < this.enemies.length; i++){

        this.enemies[i].update()

        if(this.enemies[i].dist(this.player) > 100){
            this.enemies[i].move()
        }else{

            this.enemies[i].moveto(this.player,30)

        }

        if(this.enemies[i].lives <= 0){

            this.enemies.splice(i,1)

        }

    }
for(i=0;i100){
this.敌军[i].move()
}否则{
这个。敌人[i]。移动到(这个。玩家,30)
}
if(this.friends[i].lives 2&&this.passi 10){
这个指数=0;
这是帕西++
}
}否则{
此.passi=0
}
}
返回(this.vector)

这是git存储库:

我建议您使用Chrome开发工具评测javascript。有很多解释如何做到这一点。希望你能修好它^^谢谢你的建议
this.vector = new Vector(x,y,534/8,1517/8)

this.vector.move = function(){

    if(this.passi <= 2){ //1

        game.rspe.play()

        if(game.level.tick){

            this.IndexX++;

        }

        this.currentImage = game.enemyl
        this.x-=3;

        if (this.IndexX > 10){

            this.passi++
            this.IndexX = 0;

        }

    }else if(this.passi > 2 && this.passi <= 5){  //2

        game.rspe.play()

        if(game.level.tick){
            this.IndexX++;  
        }

        this.currentImage = game.enemyr
        this.x+=3;

        if (this.IndexX > 10){

            this.IndexX = 0;
            this.passi++

        }

    }else{

        this.passi = 0

    }

}

return(this.vector)