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

[Dúvida] Existe algum Código para finalizar o jogo?

Caso eu queira que o jogo finalize com 10 pontos, existe algum código que eu possa inserir para o jogo finalizar/reiniciar (no Scratch)?

2 respostas

Olá Diego, tudo certo?

Ótima pergunta!

Para que o nosso projeto apresente uma tela de fim de jogo, precisamos considerar que todos os objetos devem parar de se movimentar e sumirem da tela quando chegarmos aos 10 pontos, sendo assim, precisamos além de criar uma tela de fim de jogo, indicar quando o jogo deve parar e quando deve continuar, quando os atores devem aparecer e desaparecer da tela.

Primeiramente criaremos um novo cenário, esse novo cenário será a nossa tela de fim de jogo. Para identificar a tela, colocaremos o nome da fantasia de “Fim de jogo“, adicionaremos uma cor e um texto:

Início da transcrição. Captura de tela do scratch, a tela é divida em 3 partes, a parte da esquerda contém várias ferramentas como pincel e borracha, onde a ferramente de texto está selecionada, parte superior contém o nome do cenário, que é fim de jogo. A maior parte é a da direita, ocupada por um quadrado vermelho escrito com um texto no centro, o texto em preto descreve Fim de jogo. Fim da transcrição.

Com o visual da nossa tela pronto, partiremos para a criação do código da tela, o nosso intuito é que tanto o jogador quanto o oponente ao atingirem um valor maior que 2 pontos façam a tela mudar, sendo assim, dentro do código dos cenários:

  • Adicionamos o bloco quando a bandeira for clicada, assim o nosso código rodará no inicio do jogo. E para notificar o jogo o quanto pontuamos e assim identificar o momento que os pontos forem maiores que 2, usaremos o bloco espere até que e aplicamos as condições dos pontos usando os operadores ou e maior que:

Início da transcrição. Captura de tela do scratch, temos 2 blocos de códigos um abaixo e complementando o outro. Cada bloco de código corresponde a uma parte do código. O primeiro bloco diz que quando a bandeira for clicada algo deve acontecer, o segundo complementa dizendo deve  esperar até que os pontos do oponente ou do jogador sejam maiores do que dois. Fim da transcrição.

  • Adicionamos o bloco mude para o cenário e o bloco pare todos, dessa forma, pararemos o jogo e mudaremos a tela para a de fim de jogo quando a pontuação for superior a 2:

Início da transcrição. Captura de tela do scratch, há 4 blocos de código e os 2 últimos estão em destaque. Cada bloco de código corresponde a uma parte do código. Os 2 primeiros blocos dizem que quando a bandeira for clicada espere até que os pontos do oponente ou do jogador sejam maiores que dois. O terceiro bloco de  diz que cenário deve mudar para o de fim de jogo, enquanto o quarto indica a ação de parar tudo que está rodando no jogo. Fim da transcrição.

Como queremos que a cada jogo novo o fundo volte a tela de pong, inserimos uma nova linha de código com o bloco quando a bandeira for clicadae mude para o cenário pong:

Início da transcrição. Captura de tela do scratch, na tela temos 2 blocos de código um abaixo do outro. Cada bloco de código corresponde a uma parte do código. O primeiro descreve que quando a bandeira for clicada algo deve acontecer, o segundo complementa mudando o cenário para o jogo de Pong. Fim da transcrição.

  • Para o código do cenário de fim de jogo, adicionaremos os códigos esconda a variável, assim esconderemos a pontuação quando for fim de jogo. Para o código do cenário de pong, adicionaremos os códigos de mostre a variável. Assim, quando o jogo iniciar, mostraremos a pontuação novamente:

Início da transcrição. Captura de tela do scratch, na imagem temos 2  códigos com vários blocos. Cada bloco de código corresponde a uma parte do código. O primeiro código é chamado de Código da tela de Fim de jogo, enquanto o segundo é chamado de código da tela de pong. Em ambos os códigos está em destaque por retângulos vermelhos 2 blocos. No código da tela de fim de jogo, os blocos em destaque são o de esconda a variável meus pontos e esconda a variável pontos do oponente. No código da tela de pong, os códigos em destaque são mostre a variável meus pontos e mostre a variável pontos do oponente. Fim da transcrição.

Continuação (1/2)...

solução!

Continuação (2/2):

Como queremos que os nossos atores também se escondam quando o jogo acabar, devemos passar uma mensagem para eles, para isso, usaremos o bloco transmita mensagem e criaremos uma nova mensagem:

Início da transcrição. Imagem retirada do scratch mostrando um bloco de código e a lista em cascata deste bloco. O bloco tem a função de transmitir uma mensagem, dentro do bloco tem um campo clicável e se distendendo dele há outro campo clicável para criar uma nova mensagem. Fim da transcrição.

  • Colocamos o nome de Fim de Jogo e adicionamos no código de fim de jogo:

Início da transcrição. Imagem retirada do scratch, a imagem mostra uma linha de código com vários blocos .  Cada bloco de código corresponde a uma parte do código. Um desses blocos é destacado em vermelho e descreve que sua função é transmitir a mensagem de fim de jogo. Fim da transcrição.

Nos nossos atores, por meio dos blocos quando eu receber mensagem e esconda, iremos passar a mensagem que o jogo acabou e que o ator deve ser ocultado, porém, também precisamos fazer eles aparecerem quando o jogo começar, para isso também adicionamos o código mostre no código principal do ator:

Início da transcrição. Captura de tela do scratch, na captura há 2 linhas de código, a primeira comenta que quando o ator recebe fim de jogo, ele deve se esconder. A segunda é referente a posição da raquete do jogador,  que além de mover a raquete deve por fim, mostrar o ator novamente por meio do bloco "mostre". Fim da transcrição.

  • Com isso, modificamos os códigos dos demais atores que também devem se esconder quando receber fim de jogo e aparecer novamente quando a bandeira for clicada.

Após essas modificações, teremos o seguinte resultado:

Início da transcrição. O gif ou uma série de capturas que dá uma impressão de vídeo apresenta um jogo de pong rodando, dessa forma, quando a raquete da direita marca 3 pontos uma tela de fim de jogo substitui tudo que antigamente estava na tela, como a bolinha, raquete e placa. Quando é clicado em inicar jogo de novo o jogo volta com tudo que havia antes na tela.Fim da transcrição.

Para acessar o código completo com as modificações realizadas, segue abaixo o projeto:

Se precisar de ajuda ou tiver alguma dúvida, estou à disposição, conte comigo!

Um bom dia e bons estudos

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