A colisão do carro ocorre de forma estranha. O carro está colidindo em Y também numa faixa de 1cm de distancia do carro. Poderia me dar uma luz para o que poderia estar acontecendo? Obrigado pela atenção.
Segue os códigos.
//Sketch.js
function setup() { createCanvas(500, 400); }
function draw(x,y) {
background(imagemDaEstrada);
mostraAtor(); mostraCarros(); movimentaCarros(); movimentaAtor(); voltaPosicaoInicialDoCarro() verificaColisao();
} //Loading Atores; let imagemDaEstrada; let imagemDoAtor; let imagemCarroVermelho; let imagemCarroVerde; let imagemCarroAzul; let imagemTruckAmarelo; let imagemTruckLaranja; let imagemCarroAzul2; let imagemCarroPreto
function preload(){
imagemDaEstrada = loadImage("imagens/estrada.png"); imagemDoAtor = loadImage("imagens/Ciclista.png"); imagemCarroVermelho = loadImage("imagens/carro_vermelho.png"); imagemCarroVerde = loadImage("imagens/carro_verde.png"); imagemCarroAzul = loadImage("imagens/carro_azul.png"); imagemTruckAmarelo = loadImage("imagens/truck_amarelo.png"); imagemTruckLaranja = loadImage("imagens/truck_laranja.png"); imagemCarroPreto = loadImage("imagens/carro_preto.png"); imagemCarros =[imagemCarroVermelho, imagemCarroVerde, imagemCarroAzul, imagemTruckAmarelo, imagemTruckLaranja, imagemCarroAzul, imagemCarroPreto];
}
//ator let xAtor = 220; let yAtor = 370; let colisao = false;
function mostraAtor(){ image(imagemDoAtor, xAtor, yAtor, 40, 40); }
function movimentaAtor(){ if (keyIsDown(UP_ARROW)){ yAtor -= 1.5; } if (keyIsDown(DOWN_ARROW)){ yAtor += 1.5; } }
function verificaColisao(){ //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) for (let i = 0; i < imagemCarros.length; i++){ colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15) if (colisao){ voltaAtorParaPosicaoInicial(); } } }
function voltaAtorParaPosicaoInicial(){ yAtor = 366; } function verificaColisao(){ //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter) for (let i = 0; i < imagemCarros.length; i++){ colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15) if (colisao){ voltaAtorParaPosicaoInicial(); } } }
function colidiu(){ yAtor = 366; }
//Array list let xCarros = [600,600,600,600,600,600,600]; let yCarros = [220,320,265,120,20,165,80]; let velocidadeCarros = [2.5, 1.5, 3, 2, 2.7, 2.2,0.9]; let comprimentoCarro = 80; let alturaCarro = 70;
function mostraCarros(){ for (let i = 0; i < imagemCarros.length; i++){ image(imagemCarros[i], xCarros[i], yCarros[i], comprimentoCarro, alturaCarro); } }
function movimentaCarros(){ for (let i = 0; i < imagemCarros.length; i++){ xCarros[i] -= velocidadeCarros[i]; } }
function voltaPosicaoInicialDoCarro(){ for (let i = 0; i < imagemCarros.length; i++){ if (passouTodaATela(xCarros[i])){ xCarros[i] = 600; } } }
function passouTodaATela(xCarro){ return xCarro < - 50; }