boa tarde!
Estou querendo reiniciar o jogo, quando aparecer o game over.
ex.: aparecer um botão voltar ou um popup.
Poderia me dar uma luz, por favor.
Obrigado!
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
boa tarde!
Estou querendo reiniciar o jogo, quando aparecer o game over.
ex.: aparecer um botão voltar ou um popup.
Poderia me dar uma luz, por favor.
Obrigado!
Olá Renan,
Para reiniciar o jogo, basta capturar o toque na tela e invocar novamente o método startGame(...) da MainActivity. Esse método instancia uma nova Thread com a GameView e assim o loop do jogo que fica no método run(...) se inicia novamente.
Olá Jeferson,
Eu tenho que usar esses dois métodos abaixo e também criar um outro para reiniciar, fiquei na dúvida.
public boolean onTouch(View v, MotionEvent event) {
passaro.pula();
return false;
}
protected void onResume() {
super.onResume();
game.inicia();
new Thread(game).start();
}
Obrigado!
Olá Jeferson,
Dúvida, Eu tenho que usar esses dois métodos abaixo e também criar um outro para reiniciar?
Game
public boolean onTouch(View v, MotionEvent event) {
passaro.pula();
return false;
}
MainActivity
protected void onResume() {
super.onResume();
game.inicia();
new Thread(game).start();
}
Obrigado!
Olá Renan,
Você só vai precisar alterar alguns pontos da sua classe Game. Primeiro, vamos alterar o método run() para que ele não encerre a Thread do jogo quando houver colisão. Depois vamos alterar o onTouch(...) para reiniciar os jogo e os seus elementos:
public class Game extends SurfaceView implements Runnable, View.OnTouchListener {
// outros métodos
@Override
public void run() {
while (true) { // adicionar esse while
while (isRunning) {
// o código aqui fica igual
}
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (isRunning) {
passaro.pula();
} else {
inicializaElementos();
inicia();
}
return false;
}
}