Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 函数调用时重置变量_Javascript_Html_Canvas - Fatal编程技术网

Javascript 函数调用时重置变量

Javascript 函数调用时重置变量,javascript,html,canvas,Javascript,Html,Canvas,我正在编写一个游戏,其中一个游戏实体移动到HTML画布上的某个位置。此位置是一个变量,只能在第一次调用函数时设置,以避免对其进行更新。然而,我希望能够重新计算这个变量,让我的玩家朝另一个方向移动 我尝试使用变量“I”仅在第一次调用时计算方向,以避免在更新循环中重新计算。不幸的是,当我需要另一个值时,这会阻止我重新计算变量 矢量“vec”是位置变量。“this.x”和“this.y”是游戏对象的位置坐标 this.moveRange = function(dis) { this.vec

我正在编写一个游戏,其中一个游戏实体移动到HTML画布上的某个位置。此位置是一个变量,只能在第一次调用函数时设置,以避免对其进行更新。然而,我希望能够重新计算这个变量,让我的玩家朝另一个方向移动

我尝试使用变量“I”仅在第一次调用时计算方向,以避免在更新循环中重新计算。不幸的是,当我需要另一个值时,这会阻止我重新计算变量

矢量“vec”是位置变量。“this.x”和“this.y”是游戏对象的位置坐标

this.moveRange = function(dis) {

    this.vec = new function(){this.x = Math.floor(Math.random() * range); this.y = Math.floor(Math.random() * range)}
    if(i == 0){
        distX   = this.vec.x - this.x
            distY   = this.vec.y - this.y

        dist    = Math.sqrt(distX*distX + distY*distY)
        distX /= dist
        distY /= dist
    }
    i+= 1
    if(dist > 2){
        if(a < dis){
        this.x += (distX/100)*this.vel
        this.y += (distY/100)*this.vel
            a++
        }
    }
}
this.moveRange=函数(dis){
this.vec=new function(){this.x=Math.floor(Math.random()*范围);this.y=Math.floor(Math.random()*范围)}
如果(i==0){
distX=this.vec.x-this.x
distY=this.vec.y-this.y
dist=Math.sqrt(distX*distX+distY*distY)
distX/=dist
distY/=dist
}
i+=1
如果(距离>2){
如果(a