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

Texto de Game Over não está centralizado no meio da tela

O meu texto de game over fica mais pra direita da tela, em vez de ficar no meio.

public void desenhaNo(Canvas canvas){
        String gameOver = "Game Over";
        int centroHorizontal = centralizaTexto(gameOver);

        canvas.drawText(gameOver, centroHorizontal, tela.getAltura()/2, VERMELHO);
    }
private int centralizaTexto(String texto){
        Rect limiteDoTexto = new Rect();
        int centroHorizontal = tela.getLargura()/2 - (limiteDoTexto.right - limiteDoTexto.left)/2;
        VERMELHO.getTextBounds(texto, 0, texto.length(), limiteDoTexto);
        return centroHorizontal;
    }
2 respostas

Olá Vitor,

Conferi aqui os métodos e pelo menos nesses dois métodos eles estão corretos. Para termos certeza que não tem nada influenciando no resultado desse cálculo, posta aqui também o restante do código dessa classe onde você utiliza o método desenhaNo(...).

Se possível, seria legal também ter uma screenshot da tela com o game over desenhado pra gente tentar entender o problema.

Obrigado!

solução!

Já consegui resolver o erro trocando a linha da cor com a "int centroHorizontal..." de lugar. Obrigado.

    private int centralizaTexto(String texto){
        Rect limiteDoTexto = new Rect();
        VERMELHO.getTextBounds(texto, 0, texto.length(), limiteDoTexto);
        int centroHorizontal = tela.getLargura()/2 - (limiteDoTexto.right - limiteDoTexto.left)/2;
        return centroHorizontal;
    }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software