Olá!
Mesmo os outros tópicos do fórum não me ajudaram a entender o motivo de eu não estar conseguindo fazer a colisão entre ator e carros com o ator voltando para o início.
Eis o código completo:
let imagemDaEstrada; let imagemDoAtor; let imagemCarro1; let imagemCarro2; let imagemCarro3;
// código dos carros let xCarros = [600, 600, 600]; let yCarros = [40, 96, 150]; let velocidadeCarros = [2, 3.2, 2.5]; let comprimentoDosCarros = 50; let alturaDosCarros = 40;
// ator let xAtor = 100; let yAtor = 366; let colisao = false;
function preload(){ imagemDaEstrada = loadImage ("imagens/estrada.png"); imagemDoAtor = loadImage ("imagens/ator-1.png"); imagemCarro1 = loadImage ("imagens/carro-1.png"); imagemCarro2 = loadImage ("imagens/carro-2.png"); imagemCarro3 = loadImage ("imagens/carro-3.png"); imagemCarros = [imagemCarro1, imagemCarro2, imagemCarro3]; }
function setup(){ createCanvas(500, 400); }
function draw(){ background(imagemDaEstrada); mostraAtor(); mostraCarro(); movimentaCarro(); movimentaAtor(); voltaPosicaoInicialDoCarro(); verificaColisao(); }
function mostraAtor(){ image(imagemDoAtor, xAtor, yAtor, 30, 30); }
function mostraCarro(){ for (let i = 0; i < imagemCarros.length; i++){ image(imagemCarros[i], xCarros[i], yCarros[i], 50, 40); } }
function movimentaCarro(){ for (let i = 0; i < imagemCarros.length; i++){ xCarros[i] -= velocidadeCarros[i]; } }
function voltaPosicaoInicialDoCarro(){ for (let i = 0; i < imagemCarros.length; i++){ if (xCarros[i] < -50){ xCarros[i] = 600 } } } function movimentaAtor(){ if (keyIsDown(UP_ARROW)){ yAtor -= 3; } if (keyIsDown(DOWN_ARROW)){ yAtor += 3; } }
function verificaColisao (){ for (let i = 0; i < imagemCarros.length; i++){ colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoDosCarros, alturaDosCarros, xAtor, yAtor, 15); if (colisao){ colidiu; } } }
function colidiu(){ yAtor = 366; }
Espero ajuda de alguém. Obrigada!