1
resposta

bolinha nao colidiu com a raquete

depois que inclui a função colisaoMinhaRaqueteBiblioteca a bolinha não bate mais na raquete e sim na borda, já verifiquei o código e parece estar correto.

function colisaoRaquete() {
    if (xBolinha - raio < xRaquete + largRaquete
        && yBolinha - raio < yRaquete + altRaquete
        && yBolinha + raio > yRaquete) {
        velocidadexBolinha *= -1;
    }
}

function colisaoMinhaRaqueteBiblioteca() {
colidiu = collideRectCircle ( xRaquete, yRaquete, largRaquete, altRaquete, xBolinha, yBolinha, raio)
 if (colidiu) {
   velocidadeyBolinha *= -1               
}
}
1 resposta

Olá, Fernando! Como vai?

Antes de mais nada, perdão em demorar a lhe responder.

Tomei a liberdade em editar o seu tópico, utilizando o Markdown. Ao postar um código, basta clicar no sétimo ícone das opções na barra de ferramentas do fórum e inserir seu código entre os acentos. Caso te interesse, temos um artigo bem legal sobre isso aqui.

Vamos à dúvida!

Rodei o seu código e notei que ao tocar na raquete a bolinha ultrapassa ela, certo? A razão disso é: uma variável com um errinho.

dentro do seu if (colidiu) { velocidadeyBolinha *= -1 }, não utilizaremos a variável velocidadeyBolinha, e sim a variável velocidadexBolinha.

Portanto, seu código ficará desta forma:


function colisaoRaquete() {
    if (xBolinha - raio < xRaquete + largRaquete
        && yBolinha - raio < yRaquete + altRaquete
        && yBolinha + raio > yRaquete) {
        velocidadexBolinha *= -1;
    }
}

function colisaoMinhaRaqueteBiblioteca() {
colidiu = collideRectCircle ( xRaquete, yRaquete, largRaquete, altRaquete, xBolinha, yBolinha, raio)
 if (colidiu) {
   velocidadexBolinha *= -1               
    }
}

Acredito que ao fazer essa mudança, seu jogo irá funcionar do modo correto. Caso ainda tenha dúvidas, sinta-se livre para perguntá-las.

Bons estudos!

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