Projeto concluido porem ocorrem alguns Bugs...
1 A bolinha as vezes trava na raquete e gera vários pontos. 2 As vezes a bolinha não marca ponto 3 As vezes a bolinha não emite o som https://scratch.mit.edu/projects/768615015/
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Projeto concluido porem ocorrem alguns Bugs...
1 A bolinha as vezes trava na raquete e gera vários pontos. 2 As vezes a bolinha não marca ponto 3 As vezes a bolinha não emite o som https://scratch.mit.edu/projects/768615015/
Olá, Vagner, tudo bem?
Que bom que você buscou aperfeiçoar seu código, parabéns, é exatamente isso que vai te fazer crescer como programador!
Vamos falar dos três problemas que você citou:
Para essa situação, uma das possibilidades é de que sempre quando for computado o gol, a bolinha voltar ao centro, isso evita que a bolinha fique entre a raquete gerando vários pontos.
Neste caso, basta que você coloque uma linha que desloca o x da bola para o meio do campo sempre que for gol, tipo assim:
Adicionamos o set x to 0 sempre que for gol!
Você já percebeu que isso só acontece logo depois da bolinha ficar presa na frente da raquete? E que ela só fica presa bate exatamente na quina da raquete?
Isso acontece, pois no mundo ideal o nosso if das verificações só acontece uma vez por raquetada. Mas entrando bem na quina a bola consegue ficar em um espaço bem pequeno onde ela ativa esse if várias vezes, fazendo aquele zig-zag e aquele barulho chato.
Além de, aparentemente, bugar a colisão do Scratch impedindo a gente de computar os pontos e fazer o som da bolinha.
Podemos resolver isso dando um “empurrão” quase imperceptível na bola sempre que ocorrer a raquetada?
Segue o código abaixo:
Primeiro eu separei a verificação do toque para cada raquete, depois fiz com que a bola (depois de mudar de direção) fosse para uma posição logo a frente da raquete, evitando assim que a colisão aconteça várias vezes por raquetada!
Teoricamente, resolvendo o segundo problema, esse também é resolvido!
Espero ter te ajudado.
Reforço que estou à disposição para tirar dúvidas.
Abraços.