Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

edub13

Monogame resolução independente

Mensagens Recomendadas

edub13    0
edub13

Boas pessoal, estou a desenvolver um jogo em monogame, e não faço a mínima como torna lo de resolução independente, por exemplo num computador (onde está a ser desenvolvido) tem uma resolução de 1900 X 800 tudo bem, mas se o abrir no meu portátil por exemplo os gráficos ficam achatados ou meio "desfocados" como posso resolver este problema?

Agradeço desde já !

Cumprimentos.


Learning:

C++

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55    46
ribeiro55

Pegando no teu ambiente como padrão (1900x800), imagina que queres mostrar um sprite 200x300 sem deformação, num ecrã 800x600:

Podes calcular os comprimentos e alturas com base numa regra de 3 simples:

200 está para 1900 como X está para 800  X = (800x200)/1900 ~= 84 
Width = 84
Height = (84*300)/200 = 126

Para que fique consistente nessa resolução, esse sprite deve ser escalado para 84x126 (200/300=0.6 == 84/126=0.6)

Também podes usar cálculo por percentagens. Imagina que o sprite deve ter 20% do comprimento do ecrã:

Width = 800*0.2 = 160
Height = (160*300)/200 = 240

Para que fique consistente nessa resolução, esse sprite deve ser escalado para 160x240 (200/300=0.6 == 160x240=0.6)

Estes cálculos resolvem o problema do achatado. O problema do desfocado tem a haver com as tuas escolhas para resolução de sprite.

Se o tamanho base é 200x200 num ambiente de desenvolvimento 800x600, bem escalado, em 1600x1200 vai ficar desfocado porque o sprite passa a ter 400x400.

Deves produzir imagem a pensar na resolução alvo mais alta e usar (idealmente) diferentes imagens para diferentes resoluções. Isto porque se produzires um sprite 400x400 a pensar na resolução máxima 1600x1200, quando correr em 800x600 estás a dar ao processador uma imagem que ele vai ter sempre de reduzir por metade.

Se limitares as resoluções por código, o ideal é produzir um set de imagens para cada resolução. Evitas os cálculos.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.