Prezados,
após ter sido vista a renderização da tela de game over no curso, fiquei com uma dúvida: como deve ser realizada a manipulação do controle do jogo para que, ao tocar a tela com a mensagem de game over sendo exibida (o atributo isRunning
está com o valor false
), o jogo seja reiniciado?
Tentei apenas alterar o valor do atributo isRunning
e chamar o método que inicializa os elementos, mas não funcionou...
Como a nossa view (SurfaceView
) está rodando em uma Thread
separada, há alguma coisa diferente que precisa ser realizada?
Apenas para contextualizar:
No jogo desenvolvido, a activity instancia a view principal e inicia uma nova Thread
para a execução do jogo. O loop principal do jogo se baseia em um atributo boolean
, re-renderizando a tela a cada ciclo. No game over, o que foi realizado foi alterar o atributo boolean
para a condição ser falsa.
A única forma que consegui foi pegando o evento de click na activity principal e recriando a Thread principal do jogo.
Para mais detalhes da implementação, segue o link do repositório no github