我正在编写一个游戏,其中游戏实体移动到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++
}
}
}