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!
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;
    }
}