Oi, Matheus! Tudo bem?
O p5.js possui em sua página exemplos de funcionalidades e aplicações para os usuários internalizarem melhor como utilizar o ambiente de codificação.
Segundo as próprias referências fornecidas pelo p5 o uso correto/indicado seria do conectivo “&&”, como você pode conferir no link abaixo:
exemplos | p5.js
Mas sabemos que && é um operador lógico, geralmente utilizado em operações condicionais, enquanto & tem uma funcionalidade um pouco diferente pois trabalha sobre uma comparação bit a bit.
Uma comparação bit a bit funciona por meio da comparação apenas entre operadores booleanos (0 ou 1, true ou false).
No caso de um código como o abaixo:
function verificaColisaoRaquete(){
if (xBolinha - raio < xRaquete + raqueteComprimento
&& yBolinha - raio < yRaquete + raqueteAltura
&& yBolinha + raio > yRaquete){
velocidadeXBolinha *= -1;
}
}
Muito provavelmente as comparações com os operadores > e < retornaram true ou false, tornando possível o uso de & nesse caso. Entretanto se colocarmos o conectivo & entre dois números inteiros, por exemplo, como 10 ou 12 (≠ 0 ou 1), o comando para essa aplicação não funcionaria, retornaria 8, pois iria relacionar os números binários correspondentes a 10 e 12.
Valeu por compartilhar o que ocorreu com a gente!
Para que eu consiga entender ainda mais o seu problema e te dar uma justificativa um pouquinho melhor, você poderia me mandar o seu código e me contar qual navegador você está utilizando?
Um forte abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!