//CÓDIGO DO ATOR
//variaveis do ator
let xAtor = 170
let yAtor = 366
let comprAtor = 30
let largAtor = 30
let colidiu = false
let meusPontos = 0
function mostraAtor() {
  let ator = new Image()
  ator.src = 'images/ator-1.png'
  ator.onload = function () {
    pincel.drawImage(ator, xAtor, yAtor, comprAtor, largAtor)
  }
}
//keyCodes das setas do teclado
// let esquerda = 37
let cima = 38
// let direita = 39
let baixo = 40
function moveAtor(evento) {
  if (evento.keyCode == cima) {
    yAtor -= 15
  } else if (evento.keyCode == baixo) {
    if (yAtor < 366) {
      yAtor += 15
    }
  }
}
function checaColisao() {
  //colisaoRetCirc(xRet, yRet, largRet, altRet, xCirc, yCirc, diametro)
  for (let i = 0; i < imagens.length; i++) {
    colidiu = colisaoRetCirc(
      xCarros[i],
      yCarros[i],
      comprCarros,
      largCarros,
      xAtor,
      yAtor,
      15
    )
    if (colidiu) {
      resetaAtor()
      if (meusPontos > 0) {
        meusPontos -= 1
      }
      colisao.play()
    }
  }
}
function resetaAtor() {
  yAtor = 366
}
function incluiPlacar() {
  pincel.font = '25px Arial'
  pincel.textAlign = 'center'
  pincel.fillText(meusPontos, 170, 27)
}
function marcaPonto() {
  if (yAtor < 15) {
    meusPontos++
    resetaAtor()
    pontos.play()
  }
}
//CÓDIGO DOS CARROS
//variaveis dos carros
let xCarros = [600, 600, 600, 600, 600, 600]
let yCarros = [40, 95, 150, 210, 270, 318]
let velocidades = [2, 2.5, 3.2, 5, 3.3, 2.3]
let imagens = [
  'images/carro-1.png',
  'images/carro-2.png',
  'images/carro-3.png',
  'images/carro-1.png',
  'images/carro-2.png',
  'images/carro-3.png'
]
let comprCarros = 50
let largCarros = 40
function mostraCarros() {
  for (let i = 0; i < imagens.length; i++) {
    let carros = new Image()
    carros.src = imagens[i]
    carros.onload = function () {
      pincel.drawImage(carros, xCarros[i], yCarros[i], comprCarros, largCarros)
    }
  }
}
function moveCarros() {
  for (let i = 0; i < imagens.length; i++) {
    xCarros[i] -= velocidades[i]
    if (saiuDaTela(xCarros[i])) {
      xCarros[i] = 600
    }
  }
}
function saiuDaTela(xCarro) {
  return xCarro < -50
}
//CÓDIGO DO CENÁRIO
function mostraEstrada() {
  estrada.src = 'images/estrada.png'
  estrada.onload = function () {
    pincel.drawImage(estrada, 0, 0, cenario.width, cenario.height)
    incluiPlacar()
  }
}
function limpaTela() {
  estrada.src = ''
  mostraEstrada()
}
//Verifica a colisão entre um retângulo e um círculo
function colisaoRetCirc(xRet, yRet, largRet, altRet, xCirc, yCirc, diametro) {
  //2d
  // variáveis temporárias para designar as bordas para teste
  let testeX = xCirc
  let testeY = yCirc
  // qual borda está mais próxima?
  if (xCirc < xRet) {
    testeX = xRet // borda esquerda
  } else if (xCirc > xRet + largRet) {
    testeX = xRet + largRet
  } // borda direita
  if (yCirc < yRet) {
    testeY = yRet // borda superior
  } else if (yCirc > yRet + altRet) {
    testeY = yRet + altRet
  } // borda inferior
  // aferir distâncias das bordas mais próximas
  // A distância entre dois pontos no plano cartesiano é dada pela raiz quadrada de (x1 - x2)² + (y1 - y2)²
  let distancia = Math.sqrt((xCirc - testeX) ** 2 + (yCirc - testeY) ** 2)
  // se a distância for menor que o raio, colisão!
  if (distancia <= diametro / 2) {
    return true
  }
  return false
}