Olá!
O jogo estava funcionando perfeitamente bem, até eu criar a função colidiu();
e inseri-la dentro da função verificaColisao()
. Quando faço isso e dou play no jogo, o ator passa a se movimentar apenas na horizontal (Eixo X).
Ao desativar a função colidiu();
e retornar o valor yAtor = 366
para dentro da função verificaColisao()
, o jogo passa a voltar a funcionar normalmente.
Imaginei que poderia ser um bug, então testei em dois navegadores diferentes: Safari e Chrome. Em ambos o problema persiste.
Segue código para análise.
let xAtor = 100;
let yAtor = 366;
let colisao = false;
function mostraAtor (){
image(imagemDoAtor, xAtor, yAtor,30, 30)
}
function movimentaAtor (){
if (keyIsDown(UP_ARROW)){
yAtor = yAtor - 3
}
if (keyIsDown(DOWN_ARROW)){
yAtor = yAtor + 3
}
if (keyIsDown(LEFT_ARROW)){
xAtor = xAtor - 3
}
if (keyIsDown(RIGHT_ARROW)){
xAtor = xAtor + 3
}
}
function verificaColisao(){
for (let i = 0; i < imagemCarros.length; i++){
colisao = collideRectCircle(xCarros[i], yCarros[i], larCarros, altCarros, xAtor, yAtor, 15)
if (colisao){
colidiu();
}
}
}
function colidiu(){
yAtor = 366;
}
Obs: a função foi incluída dentro da função draw, no arquivo sketch.js
Obrigado!