Eae Tiago vamos ver cada um dos erros, um por vez: A respeito da raquete se movimentar em y alem dos limites - você tem que adicionar uma condição, para que quando ele chegar na borda, ele ficar na mesma posição, então criei dois if's, para verificar tanto a parte de cima quanto a de baixo, e inclui esses dois if's na função de movimentaMinhaRaquete() e ficou assim: if (yRaquete == -10) { yRaquete = 0; } if (yRaquete == 330) { yRaquete = 320; }
. A respeito da bolinha as vezes ficar presa atrás da raquete, é normal, pois como criamos os componentes e eles não tão perfeitos assim, como a raquete e a bolinha, então acontece esse bug (teríamos que fazer alguns calculos para criar um cenário perfeito, como a posição X da raquete, o diametro da bolinha, etc, mas como não é o objetivo do curso se aprofundar muito no cenário, ficou assim).E o último problema, la na função marcaPonto() você colocou pra marcar o ponto do oponente se o xBolinha < 10. O erro ai acontece porquê quando a bolinha encosta na borda ela marca 1 ponto e retorna, mas quando ela retorna, o XBolinha continua sendo menor do que 10, então ele entra na condição novamente e soma mais um ponto. Então temos que diminuir o valor 10 da condição. Fiz alguns testes e o valor correto seria 7. Então ficariam assim:
if (xBolinha < 7) { pontosOponente += 1; ponto.play(); }
Qualquer dúvida comenta ai.