1
resposta

[Dúvida] DÚVIDA

Olá! Alguém consegue me ajudar nisso? Não sei o que fiz errado. O jogo não dá certo, muito bug na bolinha/raquete. Segui a instrução de um outro forum e mesmo assim não resolveu.

<iframe src="https://scratch.mit.edu/projects/762148561/embed" allowtransparency="true" width="485" height="402" frameborder="0" scrolling="no" allowfullscreen></iframe>

1 resposta

Oi, Ana Carolina! Tudo bem?

Dei uma olhadinha no seu código e os comandos "apontar para a direção número aleatório" realmente o tornam um pouco mais complicado, movimentando a bolinha de uma forma bem diferente.

Entretanto para o seu jogo funcionar normalmente, pontuando corretamente e libertando a bolinha caso ela fique presa, fiz apenas algumas alterações na parte do seu código responsável pela pontuação.

O seu código responsável pela pontuação, inicialmente, encontrava-se da seguinte forma:

Captura de tela de 2 códigos do Scratch, na qual o primeiro código, apresenta os comandos seguindo a ordem de cima para baixo: quando a bandeira verde for clicada, sempre, espere até que a posição x seja menor que -224, aponte para a direção número aleatório entre 30 e 125, adicione 1 a pontos do inimigo. Abaixo do primeiro código, encontra-se o segundo código com os comandos seguindo a ordem de cima para baixo: quando a bandeira verde for clicada, sempre, espere até que a posição x seja maior que 224, aponte para a direção número aleatório entre -30 e -125, adicione 1 a meus pontos, toque o som Whiz.

Todavia, alterei o seu código (representado pela imagem acima) pelo código representado pela imagem abaixo:

Captura de tela de 2 códigos do Scratch, um ao lado esquerdo e outro ao lado direito, na qual o primeiro código, ao lado esquerdo, apresenta os comandos seguindo a ordem de cima para baixo: quando a bandeira verde for clicada, sempre, espere até que a posição x seja menor que -228, espere 0.2 segundos, se a posição x seja menor que -228 então, adicione 10 a x, senão,  aponte para a direção número aleatório entre 30 e 125, adicione 1 a pontos do inimigo. Ao lado direito da tela, encontra-se o segundo código com os comandos seguindo a ordem de cima para baixo:  quando a bandeira verde for clicada, sempre, espere até que a posição x seja maior que 228, toque o som Whiz, espere 0.2 segundos, se a posição x seja maior que 228 então, adicione -10 a x, senão,  aponte para a direção número aleatório entre -30 e -125, adicione 1 a meus pontos.

Dessa forma, sempre que a bolinha atingir a parede o jogo esperará 0.2 segundos e conferirá se a bolinha continua na mesma posição, caso sim, adicionará 10 a posição x da bolinha, libertando-a, caso não, somara 1 ponto normalmente ao placar.

Note também que diminuí o valor do parâmetro da posição x, que define se a bolinha tocou a parede, de 224 e -224 para 228 e -228, posições mais próximas realmente da parede, para evitar bugs de pontuação.

Adiciono também que caso você queira deixar a movimentação da bolinha mais fluida pode retirar os comandos "aponte para a direção número aleatório..." e deixar o comando responsável pela colisão com a raquete apenas assim:

Captura de tela de um código do Scratch com os seguintes comandos, seguindo a ordem de cima para baixo: quando a badeira verde for clicada, sempre, se tocando em Minha raquete ou tocando em raquete do oponente então, aponte para a direção direção * -1, toque o som raquetada.

Espero ter ajudado, qualquer dúvida é só comunicar!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓