Olá. Estou com um problema que não estou a conseguir resolver algum tempo. eu queria que no Objecto da Classe player quando fizesse o set para uma nova tile (casa) ele mostrasse o boneco nessa posição. o meu problema está quando quer mostrar o círculo vermelho noutra tile(casa) ele lança uma excepção que diz que a função não está definida na classe player será possível me ajudarem a consertar este problema? tenho um projecto escolar para levar para frente mas sem conseguir esta parte não consigo fazer o resto. Agradecia imenso a vossa ajuda.
O código é o seguinte:
//CLASS TILE
class tile {
constructor(x, y, id) {
this.id = id;
this.centerPos = createVector(x, y);
this.listajog = [];
this.posPlayer1 = createVector(this.centerPos.x - 5, this.centerPos.y - 5);
this.posPlayer2 = createVector(this.centerPos.x + 5, this.centerPos.y - 5);
this.posPlayer3 = createVector(this.centerPos.x - 5, this.centerPos.y + 5);
this.posPlayer4 = createVector(this.centerPos.x + 5, this.centerPos.y + 5);
}
showTiles() {
rectMode(CENTER);
rect(this.centerPos.x, this.centerPos.y, 50, 100);
}
mostrarJogadores() {
if (this.listajog.length != 0) {
for (var i = 0; i < this.listajog.length; i++){
console.log(this.id);
if (this.listajog.getId() == 1 && this.id == this.listajog.getTileID()) {
circle(this.posPlayer1.x, this.posPlayer1.y, 5);
} else if (this.listajog.getId() == 2 && this.id == this.listajog.getTileID()) {
circle(this.posPlayer2.x, this.posPlayer2.y, 5);
} else if (this.listajog.getId() == 3 && this.id == this.listajog.getTileID()) {
circle(this.posPlayer3.x, this.posPlayer3.y, 5);
} else if (this.listajog.getId() == 4 && this.id == this.listajog.getTileID())
circle(this.posPlayer4.x, this.posPlayer4.y, 5);
}
}
}
startGame() {
this.listajog.push(pl1);
this.listajog.push(pl2);
this. listajog.push(pl3);
this.listajog.push(pl4);
}
}
/////////////////////////////////////////////////////
//CLASSE JOGADORES
class Jogador {
constructor(id) {
this.id = id;
this.tileID = 0;
}
getId() {
return this.id;
}
setTileCount(diceResult) {
this.tileID = this.tileID + diceResult;
}
getTileID() {
return this.tileID;
}
}
//CLASS MAIN
var jog = 0;
var tls = new Array(4);
function setup() {
createCanvas(400, 400);
background(220);
for (var i = 0; i < tls.length; i++) {
tls = new tile(100 + ((i + 1) * 60), 100, i);
tls.showTiles();
}
pl1 = new Jogador(1);
pl2 = new Jogador(2);
pl3 = new Jogador(3);
pl4 = new Jogador4);
}
function draw() {
for (var i = 0; i < tls.length; i++) {
tls.mostrarJogadores();
}
}
function mousePressed() {
tls[0].startGame();
}
function keyPressed() {
pl1.setTileCount(2);
pl1.mostrarJogadores();
}