Как нормально сделать движение объекта к точкЕ и проверить, что он на месте? В какой-то момент объект просто начинает "трястиcь на месте" и не меняет точку. И в целом на новую позицию начинает движение очень странно.
move(x, y) {
let dx = x - this.x;
let dy = y - this.y;
let angle = (180 * Math.atan(dy / dx)) / Math.PI;
this.x = this.x + ((Math.cos(angle)) * this.speed);
this.y = this.y + ((Math.sin(angle)) * this.speed);
/* if (x > this.x) this.x += x * this.speed;
else this.x -= x * this.speed;
if (y > this.y) this.y += y * this.speed;
else this.y -= y * this.speed;
*/
// console.log("loc" + this.x + "/"+ this.y );
}
reshenie ()
{
let r;
let x;
let y;
x = random(1,800);
y = random(1,600);
this.pos_x_next = x;
this.pos_y_next = y;
this.d="move";
console.log( this.pos_x_next+"/"+this.pos_y_next);
}
function random(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //Максимум не включается, минимум включается
}
function update() {
for (var i = 0; i <= 18; i++) {
let player1;
player1 = players[i];
/* if (player.pos_x[i]>player.x&&player.x> player.pos_x[i]) {
player.next();
alert(this.i);
}*/
let m;
m = false;
if (player1.d == "move") {
if (player1.pos_x_next != Math.ceil(player1.x) && player1.pos_y_next != Math.ceil(player1.y)) {
m = true;
}
}
if (m) {
player1.move(player1.pos_x_next, player1.pos_y_next);
} else {
player1.d = "reshenie";
player1.reshenie();
}
console.log(player1.d);
}
}