Я программирую игру, в которой игровая сущность перемещается в определенную позицию на холсте 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++
}
}
}