1
resposta

[Dúvida] Porque na parte do código de colisão com a raquete na parte de cima, adiciona a altura da raquete e na parte de baixo não subtrai a altura da raquete?

    if (xBolinha - raio < xRaquete + raqueteComprimento
    && yBolinha - raio < yRaquete **+ raqueteAltura**
    && yBolinha + raio > yRaquete) {
    velocidadeXBolinha *= -1;

    Porque não fica assim?
    if (xBolinha - raio < xRaquete + raqueteComprimento
    && yBolinha - raio < yRaquete + raqueteAltura
    && yBolinha + raio > yRaquete **- raqueteAltura**) {
    velocidadeXBolinha *= -1;

    O parâmetro da função rect para a altura é do yRaquete até a altura?
1 resposta

oi Júlia. Perceba que o y da raquete , está na parte de cima da raquete, ao transferir colisão para a outra extremidade da raquete, soma-se a altura da raquete. Soma-se porque é de cima para baixo e isso caminha está a distanciar-se do zero. Se fosse em direção ao zero, vc subtrairia. O mesmo vale pro x. O eixo x fica na esquerda da raquete. No lado da minha raquete ele está quase encostado no borda e para ter colisão com a bolinha, vc soma o x da minha raquete coma a largura da raquete. As colisões só acontecem onde está os pontos x e y. As somas e subtrações que são feitas , são para transferir os pontos x e y para o lugar em que vai acontecer a colisão!!

O parâmetro da função rect para a altura é do yRaquete até a altura? sim, o y seria a altura e o x a largura? Se eu entendi sua pergunta, sim, yRaquete é a altura. Eu sempre faço uma analogia com height e width , altura e largura. Se o eixo Y é para cima e para baixo, então é altura. E o eixo X é direita e esquerda, então é largura. Há uma boa confusão nisso tudo, pq acho que até o instrutor se confunde com altura, largura, comprimento. Bons estudos!! Se continuar com dúvidas , poste novamente.