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

Reiniciar o jogo

Olá a todos.

Criei o jogo com uma aparência simples. Acrescentei um limite de pontos para o jogo não ficar infinito. Porém, não consegui encontrar uma forma de reiniciar o jogo por um botão ou uma tecla (ex: espaço). Cheguei a criar um botão reiniciar, mas acabei deletando por não conseguir criar o método para ele. Acontece que fiz um método que interrompe os scripts do ator bola e do ator raquete quando a pontuação do jogador ou oponente chega a 7, e não encontrei a forma de reiniciar esses scripts. Pelo scratch há um método de fazer isso?

Segue o link abaixo:

https://scratch.mit.edu/projects/608203211/

Agradeço a atenção!

4 respostas
solução!

Olá Willian, como vai?

Wow!! Adorei seu jogo e as personalizações que você fez, parabéns! Essas personalizações são muito bacanas e, além de te ajudar a fixar os conteúdos adquiridos, ainda deixam seu projeto totalmente único.

Para conseguir reiniciar o jogo através do teclado você pode substituir os eventos de iniciação de jogo. No jogo atual o evento que inicia todos os blocos de código é o quando bandeira for clicado, para fazer com que o jogo inicie através da tecla espaço, por exemplo, você pode trocar esse evento pelo quando a tecla espaço for pressionada, isso fará com que o evento de comando de início de jogo deixe de ser o clique na bandeira verde e passe a ser a tecla espaço. Ficaria assim uma parte dos códigos:

Indicação dos blocos de código com o evento de iniciação alterado

Aqui é importante lembrar que você deve trocar o evento de iniciação em todos os blocos de código e atores pra funcionar corretamente, beleza? Também é bacana inserir a informação na tela para quem for jogar saber que é a tecla espaço que inicia o jogo. Testa aí e depois me conta o que achou.

Parabéns de novo pelo projeto e se tiver alguma dúvida é só mandar por aqui.

Bons estudos =D

Jennifer, muuuito obrigado pelos elogios.

Fiz as alterações que você disse e deu tudo certo. Porém eu fiquei pensando, se eu tocasse acidentalmente na barra de espaço no meio do jogo, o jogo seria reiniciado, o que não seria bom. Então eu criei uma condição em que os comandos da bolinha só eram reiniciados caso a bolinha estivesse exatamente na posição x e y = 0, que é a posição inicial da bolinha. Então, se eu clico na tecla espaço com o jogo já rodando, o placar e as outras funções não são reiniciadas porque a bolinha já estará em outras coordenadas. Como eu defini que a bolinha volte para a posição inicial quando o jogo termina, então a função reiniciar com a tecla espaço volta a funcionar. Também descobri que um ator pode ter mais de uma fantasia, não sendo necessário eu criar mais atores para das as instruções do espaço (apenas fiz a bola trocar de fantasia).

https://scratch.mit.edu/projects/608203211/

Muito obrigado pelas orientações. Se puder me conta o que achou. =D Depois da sua resposta darei o tópico como solucionado. ;)

Oi Willian!

Você conseguiu deixar melhor ainda seu jogo, mandou bem demais!

E é isso mesmo, muitas vezes a gente produz uma solução que cria outros problemas, como essa questão que você identificou de apertar a barra de espaço por acidente. Como pessoas programadoras é sempre bom que a gente esteja atento a essas situações para evitar que os usuários tenham problemas ao usar nossas aplicações.

Nessa segunda etapa você já fez duas coisas que estão muito no nosso dia a dia como pessoas programadoras:

  • Prevenção de problemas - aqui você previu um problema que poderia acontecer e criou uma solução para evitar essa possibilidade e deixar seu jogo mais seguro para ser jogado;
  • Refatoração - ao descobrir que pode colocar mais de uma fantasia nos atores você acabou otimizando seu código que agora ao invés de ter mais um ator tem a modificação no mesmo lugar, ficando mais fácil de ser lido por outras pessoas.

Curti demais seu projeto e sua iniciativa de criar contextos diferentes no jogo. Continue praticando e já tô ansiosa pra ver seu próximo projeto por aqui!

Bons estudos =D

Oi Jennifer.

Seus ensinamentos me ajudaram muito a aperfeiçoar o projeto.

Estou seguindo o curso e programando o Pong com JS (que já estou apaixonado). Quando concluir as aulas e o projeto postarei aqui sim, pode deixar.

Dúvidas solucionadas. Obrigado mais uma vez.