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

proporção entre dispositivos

Olá.

Estou usando o tamanho da tela em pixel e dividindo por uma constante para obter o tamanho de um elemento ou posição qualquer na tela. Dessa forma, poderia mudar de dispositivo e conseguiria manter uma proporção dos elementos do jogo, velocidade de queda, velocidade de movimento e etc.

Mas por algum motivo, apesar dos elementos serem desenhados na proporção correta e os canos se movimentarem também na mesma velocidade, o pulo do pássaro é aumentado em tablets.

Existe uma forma melhor para manter essa proporção entre dispositivos?

4 respostas

Olá Julius!

Como você está utilizando uma constante para tratar a diferença de proporção entre os dispositivos, você também deve verificar os métodos cai() e pula() da classe Passaro pois neles manipulamos diretamente a altura do pássaro somando ou subtraindo um valor fixo de pixels. Nesse caso, bastaria dividir ou multiplicar esse valor pela sua constante para que esses movimentos fiquem corretos, ok?

Abraço!

É o que estou fazendo. Por algum motivo não deu certo o método pula ().

Mas, qual é a melhor forma para tratar a proporção entre dispositivos?

Obrigado.

solução!

Olá Julius!

Entendi, então poste aqui por favor as classes relevantes onde você está fazendo os cálculos com essas constantes para vermos se está faltando alguma coisa, ok?

Ah, sobre a melhor maneira de fazer isso, a ideia é fazer algo parecido com o que você já está fazendo. Desde o início do desenvolvimento do jogo, o ideal é não definir tamanhos, velocidades, etc. em pixels pois isso vai variar de dispositivo para dispositivo. Definimos uma unidade nossa e então criamos uma classe de utilidade para converter medidas da nossa unidade para pixels e vice-versa.

Abraço!

Ok. Descobri o erro no meu código. Estava usando o cálculo de proporção em um pequena fórmula onde não deveria usar.

Obrigado pela resposta.