1
resposta

[Dúvida] Minha raquete vai para além da borda

1 resposta

Oi, Carlos! Tudo bem?

Para limitarmos o movimento das raquetes para dentro das fronteiras das bordas do jogo, precisamos fazer as seguintes alterações:

Devemos deixar o código responsável pela "Minha raquete" da forma apresentada pela imagem abaixo:

Captura de tela do Scratch, com uma plano de fundo branco e 3 blocos de cógidos coloridos. O primeiro ocupando todo o lado esquerdo, é composto pelos comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicado, sempre, se posição y maior que 141 então, adicione -2 a y, senão, se tecla seta para cima pressionada então, adicione 10 a y, se tecla para baixo pressionada então, adicione -10 a y. O segundo bloco de códigos, localizando no canto superior do lado direito, é composto pelos seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, vá para x: -231 y:0. Por fim, o terceiro bloco de códigos, locaizado no canto inferior do lado direito, é composto pelos seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, se posição y menor que -141 então, adicione 10 a y.

Dessa forma, sempre que a nossa raquete exceder o limite superior será adicionado -2 a sua posição y, puxando a raquete para baixo, e sempre que a nossa raquete exceder o limite inferior será adicionado 10 a sua posição y.

Além disso, devemos deixar os nossos códigos responsáveis pelo controle da "raquete do oponente" da seguinte maneira:

Captura de tela do Scratch, com um fundo branco e 3 blocos de códigos coloridos no sentido vertical. O primeiro possui os seguintes comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, vá para x: 231 y: 0. O segundo possui os comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, se posição y menor que 141 e posição y maior que -141 então, deslize por 0 segundos até x: 231 y: posição y da bolinha. Por fim, o terceiro possui os comandos, seguindo a ordem de cima para baixo: quando bandeira verde for clicada, sempre, se posição y menor que -141 então, deslize por 0 segundos até x: 231 y: -140.

De tal forma que, sempre que a raquete do oponente estiver entre os limites das bordas inferior e superior, seu deslize ocorrerá normalmente, entretanto, quando exceder a borda inferior ela deslizará para cima sempre.

Espero ter ajudado! Qualquer dúvida basta comunicar!

Um forte abraço e bons estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software