Estou tendo bastante dificuldade em ajustar a colisão. Muitas vezes o carrinho passa por cima do meu personagem (yoda) e ele volta ao ponto inicial como se estivesse colidido.
Ja tentei diminuir o tamanho do personagem, também já tentei aumentar a tela de fundo. Não queria ter que trocar o personagem :(
https://editor.p5js.org/eduardabitten/full/5-DIEaBhC
codigo carros
let xCarros = [830, 830, 830, 830, 830, 830, 415, 415, 415, 415, 415, 415];
let yCarros = [75, 175, 275, 370, 470, 570, 75, 175, 275, 370, 470, 570];
let velocidadeCarros = [5.3, 3.5, 3.3, 3.7, 4.5, 5, 5.3, 3.5, 3.3, 3.7, 4.5, 5];
let larguraCarros = [65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65];
let alturaCarros = [45, 45, 45, 55, 45, 45, 45, 55, 45, 45, 45, 45];
function mostraCarro(){
for (let c = 0; c < imagemCarro.length; c = c + 1){
image(imagemCarro[c], xCarros[c], yCarros[c], larguraCarros[c], alturaCarros[c]);
}
}
function movimentaCarro(){
for (let c = 0; c < imagemCarro.length; c = c + 1){
xCarros[c] -= velocidadeCarros[c]
}
}
function repetirMovimento(){
for (let c = 0; c < imagemCarro.length; c = c +1){
if (passouATela(xCarros[c])){
xCarros[c] = 830
}
}
}
function passouATela (xCarros){
return xCarros < -65;
}
codigo personagem
//personagem
let xYoda = 60;
let yYoda = 640;
let colidiu = false;
function mostraPersonagem(){
image(personagem, xYoda, yYoda, 55, 45)
}
function movimentarYoda(){
if (keyIsDown(UP_ARROW)){
yYoda -= 3;
}
if (keyIsDown(DOWN_ARROW)){
yYoda += 3;
}
if (keyIsDown(RIGHT_ARROW)){
xYoda += 3;
}
if (keyIsDown(LEFT_ARROW)){
xYoda -= 3;
}
}
function verificarColisão(){
for (let c = 0; c < imagemCarro.length; c = c +1){
colidiu = collideRectCircle(xCarros[c], yCarros[c], larguraCarros[c], alturaCarros[c], xYoda, yYoda, 35);
if (colidiu){
colisao();
}
}
}
function colisao(){
yYoda = 640;
}