I have an error from ESlint, but I don´t understand why. I have read these:
- Expected 'this' to be used by class method
- Eslint : Expected 'this' to be used by class method
- How can I fix 'warning Expected 'this' to be used by class method ' eslint error?
and this:
I still don't understanding what am I doing wrong.
My class
/* eslint-disable no-plusplus */
/* eslint-disable no-undef */
class Player {
constructor(imagePlayer, name, score, positionY, positionX) {
this.imagePlayer = imagePlayer;
this.name = name;
this.score = score;
this.x = positionX;
this.y = positionY;
}
drawPlayer() {
app.map.mapGame[this.y][this.x] = this.imagePlayer;
}
obstacle(y, x) {
let colision = false;
if (app.map.mapGame[y][x] === 1) {
console.log("evaluación");
colision = true;
}
return colision;
}
lastPosition(oldPosition, direction) {
if (direction === left || direction === right) {
app.map.mapGame[this.y][this.x - oldPosition] = 0;
} else {
app.map.mapGame[this.y - oldPosition][this.x] = 0;
}
}
// movements players
movement(direction) {
switch (direction) {
case up:
if (this.y > 0) {
if (this.obstacle(this.y - 1, this.x) === false) {
this.y--;
this.lastPosition(-1, direction);
}
}
break;
case down:
if (this.y < 9) {
if (this.obstacle(this.y + 1, this.x) === false) {
this.y++;
this.lastPosition(+1, direction);
}
}
break;
case left:
if (this.x > 0) {
this.x--;
this.lastPosition(-1, direction);
}
break;
case right:
if (this.x < 14) {
this.x++;
this.lastPosition(+1, direction);
}
break;
default:
console.log("muro");
break;
}
} // movement
}
Error:
Expected 'this' to be used by class method 'obstacle
The obstacle method isn't settled on the full cases just on two of them.