Ir para conteúdo
Faça parte da equipe! (2024) ×

[Compra] Escala de resolução - TMProject


Mandalorian
 Compartilhar

Posts Recomendados

quando se copia e cola um codigo e sai vendendo da nisso, o pior de tudo aqui foi ver que "float aloca muita memoria", meu Deus, se o cara fala que float tem mais custo

de processamento eu até entenderia, porém com os processadores normais isso ai chega ser irrelevante, isso pra processadores mais antigos, com os atuais isso chega ser

brincadeira, e outra olhando meio por cima do video ai do rapaz deu pra ver que isso ai é codigo do myth usando o mesmo esquema, quem tiver pensando em comprar é melhor

dar uma bisbilhotada antes

Link para o comentário
Compartilhar em outros sites

Enquanto houve essa discussão saudável aparentemente estou terminando essa questão da escala de forma até que Solo, só tirando dúvidas com alguns companheiros de comunidade. Em breve talvez abra a todos a conclusão e como é feito o processo.

image.png

Link para o comentário
Compartilhar em outros sites

15 horas atrás, Mandalorian disse:

Enquanto houve essa discussão saudável aparentemente estou terminando essa questão da escala de forma até que Solo, só tirando dúvidas com alguns companheiros de comunidade. Em breve talvez abra a todos a conclusão e como é feito o processo.

image.png

 

Boa. Minha sugestão é seguir algo que o WYD já faz para tornar algo mais automático (por autmático eu quero dizer qualquer resolução se adequará sozinha, seja qualquer que você adicionar):

O cliente já tem um método chamado BASE_ScreenResize que basicamente "calcula a posição baseado na proporção". O segredo é fazer com que componentes sem parent sejam criados em uma posição absoluta da tela e os children sejam calculados proporcionalmente. 
 

Pena que o fórum não destaca diffs para mostrar melhor mas... vou mandar o código como quero dizer:

 

É necessário se cadastrar para acessar o conteúdo.

É claro que existem outros construtores, tudo teria que ser propagado.

E aí nos atributos m_nPosX e m_nPosY você usa essa variável bAbsolute para saber se só usa o valor do argumento ou calcula usando BASE_ScreenResize/BASE_ScreenResizeY.

É necessário se cadastrar para acessar o conteúdo.

E aí você adapta a leitura dos .bin (não o arquivo, mas a leitura). Quando ele cria os componentes, você tem a informação se é parent ou não, e aí você passa o bool pro construtor. E vualá. Boa parte está feita. E aí basta adaptar o resto do código onde mexe com posições para ou calcular ou usar a posição absoluta (seja na criação ou manipulação) já que algumas coisas são criadas em runtime quando se cria a scene.

 

A resolução 800x600 (onde é a base de tudo) ficará normal. Vale lembrar que a resolução 640x480 deixa de funcionar com esse método.

Editado por Shepher
Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

eu apostaria em fazer isso dentro da própria BASE_ScreenResize 

e definir o tamanho da m_dwScreenWidth de acordo com a resolução dessa forma 

um exemplo 

float BASE_ScreenResize(float size)
{
    if (g_pApp->m_dwScreenWidth == 1024)
       return (float)((float)g_pDevice->m_dwScreenWidth * (float)(size / 1000.0f));

Editado por daviwyd1
Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...
Em 11/10/2023 em 10:36, Shepher disse:

 

Boa. Minha sugestão é seguir algo que o WYD já faz para tornar algo mais automático (por autmático eu quero dizer qualquer resolução se adequará sozinha, seja qualquer que você adicionar):

O cliente já tem um método chamado BASE_ScreenResize que basicamente "calcula a posição baseado na proporção". O segredo é fazer com que componentes sem parent sejam criados em uma posição absoluta da tela e os children sejam calculados proporcionalmente. 
 

Pena que o fórum não destaca diffs para mostrar melhor mas... vou mandar o código como quero dizer:

 

Conteúdo escondido! Para visualiza-lo você precisa dar LIKE neste tópico.


 

  • A sua contribuição ajuda os colaboradores desta comunidade a produzirem mais conteúdos como este.

É claro que existem outros construtores, tudo teria que ser propagado.

E aí nos atributos m_nPosX e m_nPosY você usa essa variável bAbsolute para saber se só usa o valor do argumento ou calcula usando BASE_ScreenResize/BASE_ScreenResizeY.

Conteúdo escondido! Para visualiza-lo você precisa dar LIKE neste tópico.


 

  • A sua contribuição ajuda os colaboradores desta comunidade a produzirem mais conteúdos como este.

E aí você adapta a leitura dos .bin (não o arquivo, mas a leitura). Quando ele cria os componentes, você tem a informação se é parent ou não, e aí você passa o bool pro construtor. E vualá. Boa parte está feita. E aí basta adaptar o resto do código onde mexe com posições para ou calcular ou usar a posição absoluta (seja na criação ou manipulação) já que algumas coisas são criadas em runtime quando se cria a scene.

 

A resolução 800x600 (onde é a base de tudo) ficará normal. Vale lembrar que a resolução 640x480 deixa de funcionar com esse método.

Sou fã do sepher hahaha

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.