Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] [PROBLEMA] meu código esta EXATAMENTE igual ao do professor mas a função verificaColisao não funciona

# Estou tendo um grande problema com a função "for". Sei que o nome das variáveis e funções é opcional então troquei o nome destas para ficar mais claro pra mim, mas estou fazendo exatamente igual ao professor, apenas os nomes diferentes.

Quando executo o meu código não acontece a colisão e nem printa no console a palavra "Colidiu", mas ao executar o código do professor que está exatamente igual ao meu acontece a colisão e aparece no console a palavra "Colidiu"

// Meu Código
function colidiuU(){
  for (let i = 0; i < imaCarros.lenght; i++){
    colisao = collideRectCircle(xCar[i], yCar[i], lCar, aCar, xCow, yCow, 15)
    if (colisao){
      print("Colidiu")
    }
  }
}


// Código Do Professor
function colidiuU(){
  for (let i = 0; i < imaCarros.length; i++){
    colisao = collideRectCircle(xCar[i], yCar[i], lCar, aCar, xCow, yCow, 15)
    if (colisao){
      print("Colidiu")
    }
  }
}

Detalhes: todas as vezes que usei a função "for" aconteceu o mesmo problema e tive que usar o código do professor disponivel na descrição de cada aula porque o meu que está exatamente igual não funciona.

não estou executando os dois ao mesmo tempo, quando quero executar um eu uso // para comentar o outro

4 respostas

Oii, Levi! Tudo bem?

Obrigada por disponibilizar esse código e ao fazer o teste funciona, para que eu possa te ajudar de forma mais assertiva, poderia nos enviar o link do seu projeto? Dessa forma, eu consigo analisar o seu código como um todo para encontrarmos a solução para o bug.

Para realizar o compartilhamento, podemos seguir os passos abaixo:

  • Localizar a barra superior com os itens “File”, “Edit”, “Sketch”, e “Help” (em Português, as opções seriam: “Arquivo”, “Editar”, “Esboço” e “Ajuda”, respectivamente);
  • Clicar em “File”;
  • Selecionar a opção “Share” ou “Compartilhar”;
  • Copiar o link da terceira opção da lista (de cima para baixo);
  • Colá-lo em seu tópico do fórum.

Outra maneira de fazer isso é selecionando, copiando e colando a url do seu Sketch!

Aguardo o retorno.

Abraço!

Olá Nathalia.

avancei um pouco no código mas deixei o código de colisão da mesma maneira.

O probleminha está em cow.js

https://editor.p5js.org/leviSANTANA/sketches/b_qm5pamA

solução!

Obrigada por disponibilizar o link, Levi!

O erro que estava impedindo que o seu código rodasse corretamente está dentro da pasta cow.js , dentro do for, linha 23. O length de imaCarros.length; está escrito lenght e foi adicionado // antes de aCar dentro do collideRectCircle.

  • Veja como encontra-se o seu código no link disponibilizado:
 // Meu Código
function colidiuU(){
 for (let i = 0; i < imaCarros.lenght; i++){
  colisao = collideRectCircle(xCar[i], yCar[i], lCar, //aCar, xCow, yCow, 15)
    if (colisao){
      print("Colidiu")
       }
      }
  }
  • O código completo e com a correção:

    // Meu Código
     function colidiuU(){
      for (let i = 0; i < imaCarros.length; i++){
        colisao = collideRectCircle(xCar[i], yCar[i], lCar, aCar, xCow, yCow, 15)
        if (colisao){
          print("Colidiu")
         }
       }
     }
  • Outra opção é adaptar o seu código incluindo os avanços que você fez, adicionando o colidiuSim(); e somColidiu.play();

// Meu Código
function colidiuU(){
 for (let i = 0; i < imaCarros.length; i++){
   colisao = collideRectCircle(xCar[i], yCar[i], lCar, aCar, xCow, yCow, 15)
   if (colisao){
    colidiuSim(); somColidiu.play();
    }
  }
}

Ao realizar as mudanças, o código funcionou perfeitamente! Realize as mudanças em seu código, faça o teste e me conte se funcionou.

Espero ter ajudado! Qualquer dúvida que surgir, estarei à disposição.

Bons estudos e um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

obrigado Nathalia!!!, não acredito que não percebi este errinho kkkk. eu ja estava bem chateado por não funcionar porque da outra vez q utilizei a função for deu o mesmo problema e tive que pegar o codigo do professor.

vou prestar mais atenção nas linhas de codigo :D.