Oi gente, quando a bolinha bate na raquete, fica indo e vindo infinitamente. Podem me ajudar? https://scratch.mit.edu/projects/590910808/
Oi gente, quando a bolinha bate na raquete, fica indo e vindo infinitamente. Podem me ajudar? https://scratch.mit.edu/projects/590910808/
Olá Felipe, como vai?
Esse é um problema comum de acontecer no Scratch e ele tem origem no formato da bolinha e na falta de centralização dos atores, vou te mostrar como resolver:
1 - Ajuste do formato da bolinha
Pra funcionar mais corretamente no jogo a bolinha precisa ser completamente redonda e a do seu projeto ficou um pouco oval, e isso pode impactar no funcionamento do seu jogo e estar ajudando a gerar esse bug. Pra resolver isso vamos precisar excluir a que está lá e criar uma nova seguindo os passos abaixo:
2 - Ajuste de centralização dos atores
No Scratch quando vamos criar um ator é preciso que ele seja criado exatamente centralizado na tela de desenho e que o centro dos dois (ator e tela de desenho) estejam exatamente um no mesmo lugar que o outro. Esses bugs podem ocorrer caso os atores (bolinha e raquetes) sejam desenhados fora do centro.
Vá em Bolinha, depois em Fantasias, clique na sua bolinha e arraste ela para o centro da área de desenho até que os dois +
, da bolinha e da área de desenho, se encontrem. Se o centro da área de desenho não estiver aparecendo você pode ir na lupa na parte inferior da área e diminuir o zoom até visualizar.
Repita esse processo em todos os atores (bolinha e raquetes), eles passarão a ter como referência o centro da tela de desenho e você vai conseguir controlar melhor a posição com o x
e o y
e não terá mais o problema que estava acontecendo.
3 - Ajustando o posicionamento das raquetes
Depois de centralizar você vai perceber que as raquetes foram pra direções totalmente estranhas, para corrigir isso vamos alterar os valores de x
e y
nos códigos das raquetes:
Aqui vamos colocar x
valendo -234
e y
valendo 0
, ficaria assim:
Aqui vamos passar os valores de x
valendo 234
e y
valendo 0
. Na raquete oponente é importante alterar o valor de x nos dois blocos de código, ficaria assim:
Esses valores de -234
e 234
eu identifiquei arrastando as raquetes pra perto da borda até onde achei que ficaria uma posição legal, mas você pode personalizar se preferir, beleza? Só é importante deixar os valores de y
em 0
para manter as raquetes centralizadas verticalmente.
4 - Ajustando a pontuação
Depois de fazer essas alterações você vai perceber que seu jogo está contando muitos pontos, isso aconteceu porque quando alteramos o formato da bolinha precisamos ajustar também o sensor do contador de pontos. Aqui vamos fazer dois ajustes:
No contador de pontos vamos alterar os valores de x
para -225
para os pontos do oponente e o valor de x
para 225
para meus pontos. Esses valores eu identifiquei testando no seu jogo e funcionaram legal, mas o ideal é você testar arrastando a bolinha para perto da borda e trocando os valores pois a gente pode ter aumentado a bolinha em tamanhos diferentes, beleza?
Outra alteração que vamos fazer aqui é que, mesmo com as modificações acima a bolinha ainda pode passar por trás da raquete e com isso computar vários pontos de uma vez, para solucionar isso vamos inserir o controle espere 1 seg
nos blocos de contador de pontos, isso fará com que o jogo sempre espere um segundo antes de contar um novo ponto, solucionando o problema.
O código ficaria assim:
Pronto! Depois dessas alterações vai corrigir o bug que estava acontecendo, seu jogo volta a funcionar conforme o esperado e vai ficar ainda mais legal. Testa aí depois me conta o que achou.
Espero ter ajudado e se tiver alguma dúvida conte com a gente aqui no fórum.
Bons estudos =)