Olá gente, preciso de ajuda com uma situação, meu código está todo certinho, como mostra no curso... meu personagem se move, colide com os carros, marca pontos, volta a posição inicial e etc...
PORÉM estou com um problema muito chato que não consigo resolver de maneira alguma:
-->Quando meu Ator colide com Carros, algumas partes do meu Ator colide e outras não, a parte de cima do meu Ator as vezes colide mesmo nem tido tocado em algum carro, parece que o sistema está interpretando a colisão de forma errada ou algo assim com o meu Ator... Parece que meu Ator (como se fosse um círculo, digamos assim) esta com o eixo central dele desregulado/fora do lugar correto... Esse parece estar sendo o problema, porém não sei como resolver, mudar o eixo do meu Ator para que a colisão fique certinha...
Como posso fazer para solucionar isso?? Me deem um HELP...
//código do ator
let xAtor = 100;
let yAtor = 366;
let colisao = false;
let meusPontos = 0;
function mostraAtor() {
image(imagemAtor, xAtor, yAtor, 30, 30);
}
function movimentaAtor() {
if (keyIsDown (UP_ARROW)) {
yAtor -= 3;
}
if (keyIsDown (DOWN_ARROW)) {
if (podeSeMover()){
yAtor += 3;
}
}
if (keyIsDown(RIGHT_ARROW)){
if (moveRight()){
xAtor += 3;
}
}
if(keyIsDown(LEFT_ARROW)){
if(moveLeft()){
xAtor -= 3;
}
}
}
function verificaColisao() {
for (let i = 0; i < imagemCarros.length; i ++ ){
colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarros, alturaCarros, xAtor, yAtor, 15)
if (colisao) {
voltaPosicaoInicial ();
if (pontosMaiorQueZero()) {
meusPontos -= 1;
}
}
}
}
function voltaPosicaoInicial() {
yAtor = 366;
xAtor = 100;
}
function incluiPontos () {
stroke(0);
textAlign(CENTER);
textSize(24);
fill('#f28a29')
text(meusPontos, 250, 27);
}
function marcaPonto() {
if (yAtor < 15) {
meusPontos += 1;
voltaPosicaoInicial();
}
}
function pontosMaiorQueZero() {
return meusPontos > 0;
}
function podeSeMover() {
return yAtor < 366;
}
function moveRight() {
return xAtor < 470;
}
function moveLeft() {
return xAtor > 0
}