Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Coordenada x da bolinha não coincide com as coordenadas x das raquetes

Quando minha bolinha bate nas raquetes o valor da coordenada x da bolinha não coincide com o valor da coordenada x das raquetes e quando a bolinha chega na coordenada x < x declarado o ponto não está contando

6 respostas

Olá Nathan, como vai?

Sem ver o código do seu projeto não consigo saber com certeza o que está ocorrendo, mas acredito que essa divergência de posicionamento possa estar ocorrendo por conta do posicionamento dos atores na hora de desenhar.

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. Esse bug pode ocorrer caso os atores (bolinha e raquetes) sejam desenhados fora do centro, mas vou te mostrar como resolver.

  • No seu projeto selecione a bolinha e depois vá na aba Fantasias

indentificação de clique no ator bolinha e depois na aba fantasias

  • Depois 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.

indicação de selação da bolinha na área de desenho e alinhamento do centro dela com o centro da área de desenho

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.

Depois de fazer a centralização dos atores você vai precisar reposicionar os valores de x e y da bolinha e das raquetes pra que eles possam se referenciar à nova posição.

Se você fizer essas alterações e ainda não funcionar como o esperado vou precisar que me mande aqui o link do seu projeto aqui pra gente conseguir ver o que está acontecendo. Para habilitar o compartilhamento do seu jogo é só, com seu projeto aberto, ir na barra superior do Scratch em Compartilhar e preencher os dados do seu projeto.

Barra superior do scratch assinalando o botão de compartilhar

Depois disso é só clicar em Copiar o link e colar aqui na resposta do fórum pra gente conseguir te ajudar melhor, beleza?

Espero ter ajudado e se tiver mais alguma dúvida fique a vontade para mandar aqui no fórum. Bons estudos =)

Olá Jeniffer, eu fiz o que vc sugeriu e deu certo. Mas surgiram novos problemas. Por algum motivo eu coloquei q a raquete oponente deve ir para a coordenada x = 225 mas ela esta travada em 220 e qnd a minha bolinha está tocando na borda está sendo adicionado dois pontos ao placar a cada toque. Segue o link do projeto: https://scratch.mit.edu/projects/559271697

Olá Nathan, vamos precisar fazer algumas alterações pra resolver esses probleminhas, beleza?

1 - Ajuste no formato da bolinha

Pra funcionar mais corretamente no jogo a bolinha precisa ser completamente redonda e a do seu projeto ficou um pouco oval, por isso pode estar dando alguns erros. Pra resolver isso vamos precisar excluir a que está lá e criar uma nova seguindo os passos abaixo:

  • Primeiro selecione o ator Bolinha, vá na aba Fantasias, selecione o desenho da bolinha e depois clique em Apagar.

Indicação de como excluir a bolinha

  • Para criar uma nova bolinha é só clicar no ícone de círculo e para que ela fique no formato redondo é só ficar apertando a tecla shift do teclado ao mesmo tempo que desenha, e pronto, já temos a bolinha com formato corrigido.

Indicação de como desenhar nova bolinha

2 - Posicionamento da raquete do oponente

A raquete do oponente acabou ficando travada em 200 pois faltou alterar a posição no segundo bloco de código. Fazendo a alteração dos dois para 225 ela passa a ficar no local que você definiu, ficaria assim:

Posicionamento da raquete do oponente em x=225

3 - Corrigindo a pontuação

Aqui vamos precisar alterar duas coisas para resolver a pontuação.

  • Primeiro, seu placar está somando a pontuação infinitamente mesmo que o jogo seja reiniciado, para resolver isso precisamos inserir o comando mude pontuação para 0 pra que toda vez que o jogo for reiniciado a contagem de pontos também seja. Vai ficar assim:

Zerando a pontuação a cada início de partida

  • Agora que já corrigimos a inicialização dos pontos, você vai perceber que cada vez que a bolinha chega perto da borda ela conta muitos pontos ao mesmo tempo. Isso está acontecendo pois você utilizou o controle se para verificar quando a bolinha chega na distância determinada, porém esse comando verifica sempre que a bolinha passa pelo espaço, por exemplo, sempre que a bolinha estiver em uma área que o x seja menor que -225 o jogo vai ficar computando pontos para o rival. Para solucionar isso precisamos trocar o controle para o espere até que, desse jeito o jogo só vai computar pontos quando a bolinha chegar na área esperada. Ficaria assim:

Indicação dos comandos de contagem de pontos

Pronto, fazendo essas alterações seu jogo vai funcionar como o esperado e vai ficar ainda mais legal!

Testa aí e depois me conta se deu certo. =)

Eu fiz essas alterações, a reinicialização do placar deu certo, realmete e qnd a bolinha está certando a borda só está sendo adicionado um ponto. O problema é que as vezes, a bolinha passa direto pela raquete e tbm tem casos onde ela rela na borda e os ponto não são somados https://scratch.mit.edu/projects/559271697 O link do projeto reeditado

solução!

Que legal Nathan! Ficou muito bacana seu jogo com as alterações! Vamos resolver o que aconteceu agora.

1 - Melhorando a precisão da bolinha

As vezes acontece de o jogo não identificar alguns pontos, mas podemos reduzir a chance disso acontecer tirando o contorno da bolinha, isso fará com que a identificação de pontos fique mais precisa. Para isso vamos selecionar a bolinha, ir na aba Fantasias selecionar o ícone Contornar e a opção de remover contorno.

Indicação de como remover o contorno da bolinha

2 - Ajustando a identificação de pontos

Aqui vamos precisar ajustar 3 coisas pra melhorar o comportamento do jogo:

  • Primeiro precisamos separar os dois blocos de código de pontuação, você fez os dois juntos num mesmo bloco e isso pode causar uma dificuldade de identificação dos pontos pelo Scratch, por isso em alguns momentos a bolinha passava pela raquete mas não era contabilizado nenhum ponto.

  • Outro motivo pra contagem de pontos estar com alguns bugs é que o valor de x pra identificar a pontuação está muito em cima da borda, podemos resolver isso alterando os valores para -221 e 221. Esses valores você pode personalizar se quiser, é só testar arrastando a bolinha pra perto da borda e trocar nos códigos, beleza?

  • Com essas alterações você vai perceber que as vezes o jogo conta mais de um ponto, pra resolver isso vamos inserir o código de controle espere 1 seg, isso vai fazer com que o jogo espere 1 segundo antes de contar um novo ponto, resolvendo o bug.

Depois de fazer essas três alterações o código ficará assim:

Indicação dos códigos de pontuação

3 - Ajustando a defesa do oponente

Pra finalizar, percebi que o oponente nunca acerta a bolinha, isso faz com que a gente sempre ganhe. Para resolver isso precisamos alterar o valor da variável posição y da bolinha. Aqui eu coloquei o valor de 35 porque testei e achei que funcionou legal, mas você pode ir trocando os valores e testando pra ver qual você gosta mais, sendo que quanto maior o valor, menor a chance de o oponente acertar a bolinha. Ficou assim:

Código de alteração da variável

Pronto, fazendo esses ajustes vai resolver esses bugs que estavam aparecendo. Testa aí e qualquer coisa é só me falar.

=)

Fiz os ajustes que você sugeriu, Jennifer e funcionou perfeitamente!!! Mto obrigado pelo seu tempo e atenção!!!!