Oi pessoal!
Procurei aqui pra ver se alguém fez sem usar a biblioteca e segui algumas dicas de um dos alunos, o meu código ficou bem semelhante e funcionou mesmo estando um pouco diferente.
function verificaColisaoDoAtorCarros() {
for (i = 0; i < imagemCarros.length; i += 1) {
if (yAtor < yCarros[i] + alturaCarro &&
xAtor + larguraAtor > xCarros[i] &&
xAtor < xCarros[i] + alturaCarro &&
yAtor + alturaAtor > yCarros[i]) {
yAtor = 365;
}
}
}
Explicação:
Bem parecido como método do jogo de Pong, crei um if para verificar a posição do ator em X e Y é maior ou menor que a do carro.
Pra "cabeça" do ator bater em baixo do carro: o eixo x, y = (0, 0) tanto do ator quanto do carro ficam no canto superior esquerdo, portanto, sei que pra parte de cima do ator só bastaria usar sua posição y (o yAtor) e pra identificar a parte de baixo do carro, precisei somar o yCarro + alturaCarro, então a comparação yAtor < yCarro + alturaCarro
.
Pra lateral direita do ator bater do lado esquerdo do carro: aqui na mesma lógica, pra obter a "largura total" do ator tive que somar o xAtor + larguraAtor, e a comparação com o lado esquerdo do carro (x), ficando xAtor + larguraAtor > xCarro
.
A partir daí segui a lógica para os demais lados do carro, adicionei as variáveis para identificar o índice de cada carro com o loop for (i = 0; i < imagemCarros.length; i += 1)
pra que o código repita para cada carro existente.