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

[Dúvida] a colisão não esta sendo verificada no console

não consigo identificar o por que não aparece "colidiu" no console, acredito q o meu p5.collide2d.js está errado

https://editor.p5js.org/douglasprogramador/sketches/94DwA3AQx

2 respostas
solução!

Oi, Douglas! Tudo bem?

O problema está ocorrendo pois o método collideRectCircle, responsável por verificar a colisão entre uma estrutura retangular e uma circular, deve receber como parâmetros respeitando a ordem: (o valor de x do retângulo, o valor de y do retângulo, comprimento do retângulo, altura do retângulo, o valor de x do circulo, o valor de y do circulo, diâmetro do circulo), entretanto, em relação ao ator tomate, não estão sendo passadas as coordenadas de x e y como parâmetro da função, e sim um valor estático de dimensão.

Para solucionarmos o problema, então, basta trocarmos os comandos dimensõesTomate, dimensõesTomate dentro do método collideRectCircle, na função verificaColisão() que pertence ao documento tomate.js por xTomate, yTomate, deixando a função da seguinte maneira e respeitando a definição e ordem dos parâmetros que devem ser passados:

function verificaColisão(){
//collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagensVeiculos.length; i += 1){
    colisão = collideRectCircle(xVeiculos[i], yVeiculos[i], comprimentoVeiculos, alturaVeiculos, xTomate, yTomate, 15)
    if (colisão){
      print("colidiu")
    }
  }
}

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓

putz verdade, tava ficando louca ja, não acahva o erro kkkk. obrigado Sarah