Estou iniciando alguns testes para criar um jogo no programa Android. Até agora, tudo está funcionando e parece bom.
No entanto, eu não entendo como garantir que meu jogo pareça correto em todos os telefones, pois todos terão proporções de tela ligeiramente diferentes (e até muito diferentes em alguns telefones estranhos)
O que estou fazendo agora é criar um frustum de exibição (também pode ser orto) que defino para ir da razão -ratio para + (como já vi em muitos exemplos), no entanto, isso faz com que o formato do meu teste seja esticado e às vezes cortado pela borda da tela.
Estou inclinando meu telefone para a horizontal para fazer meus testes (um pouco extremo), mas ele ainda será renderizado corretamente se eu tiver feito as coisas corretamente.
Devo estar escalando em alguma proporção antes de desenhar ou algo assim?
Um exemplo seria muito apreciado.
PS. Eu estou fazendo um jogo 2D.
As 3 opções da resposta de Davy8 são:
Eu acrescentaria uma quarta opção, que é minha abordagem preferida. É realmente uma variação no letterboxing; o letterbox tradicional preenche o espaço extra com preto, enquanto essa abordagem preenche o espaço extra com gráficos extras. Você pode simplesmente estender a cor / imagem do plano de fundo e, possivelmente, mostrar um logotipo extra.
Outra maneira de pensar sobre isso é que eu sempre recuo a tela para todas as telas, e a tela inteira foi projetada propositadamente para ser maior do que todas as telas / proporções móveis. Portanto, sempre há gráficos extras para preencher a área da caixa de correio.
Além disso, dependendo da natureza do seu jogo (ou seja, essa alteração daria a certos jogadores uma vantagem injusta?) E de como sua interface do usuário foi projetada, você pode até mudar alguns elementos da interface do usuário para preencher o espaço extra. Pense nisso como um design de site fluido, onde o menu à direita fica à direita, independentemente da largura da janela.
fonte
A proporção a que você está se referindo é chamada de 'proporção'. Geralmente é calculado como a 'largura / altura' (embora, se você organizou sua janela de maneira diferente, poderia ser 'altura / largura')
Lembre-se de converter o divisor em um flutuador!
HTH
fonte