Olá, Ricardo! Tudo bem?
Antes de tudo, agradeço a paciência em aguardar uma resposta.
Na estrutura if
, presente na função colisaoRaqueteOponente()
, está faltando uma condição para verificar se a soma entre xBola
e raio
é superior a xRaqueteOponente
. Após adicionarmos esta verificação, chegamos no resultado abaixo:
function colisaoRaqueteOponente(){
if (xBola + raio > xRaqueteOponente && xBola - raio < xRaqueteOponente + raqueteLargura && yBola - raio < yRaqueteOponente + raqueteAltura && yBola + raio > yRaqueteOponente){
velocidadeXbola *= -1;
}
}
Ao lermos as verificações presentes na condicional, podemos sentir um pouco de dificuldade em reconhecer cada uma delas. Isso é super comum quando estamos lidando com várias análises ao mesmo tempo.
Uma dica super legal para melhorar a visibilidade do nosso código, é realizar quebras de linha em pontos específicos. Se aplicarmos essa ideia no if
da função colisaoRaqueteOponente()
, teremos algo assim:
function colisaoRaqueteOponente(){
if (xBola + raio > xRaqueteOponente &&
xBola - raio < xRaqueteOponente + raqueteLargura &&
yBola - raio < yRaqueteOponente + raqueteAltura &&
yBola + raio > yRaqueteOponente){
velocidadeXbola *= -1;
}
}
Notou a diferença? Toda vez que uma verificação é finalizada, utilizamos o operador lógico &&
(que significa “e”) para iniciar a próxima. Depois disso, usa-se a tecla ENTER a fim de pular para a próxima linha. Agora fica muito mais fácil visualizar cada condição, não acha?
Por fim, para somar aos seus estudos, deixo aqui uma dica de leitura. O artigo abaixo comenta sobre um ponto muito importante no desenvolvimento de programas, a padronização de nomenclaturas!
Caso surjam dúvidas ao decorrer dos seus estudos, sinta-se confortável para enviá-las no fórum. Ficarei feliz em te ajudar!
Abraços, Ricardo!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado! ✓.