Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Qualidade dos sprites alterada quando maximizo a tela.

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Matheus Carvalho
Membro
Membro
Reações: 0
Mensagens: 21

Qualidade dos sprites alterada quando maximizo a tela.

Mensagem por Matheus Carvalho » Seg Mai 23, 2016 5:30 am

Acabei de fazer o teste, se iniciar com o Port on Screen em 1920x1080, a qualidade fica certa ao colocar em tela cheia. Se começar com ela em 480x270 e depois maximizar, a qualidade dos sprites é reduzida drasticamente. Sem alterar o View in Room.

Por que isso acontece e como resolvo?

Até então achava que o GM utilizava os sprites sempre no tamanho real deles, depois fazia downscale ou upscale de acordo com o tamanho da tela, mas aparentemente ele usa o tamanho da primeira tela.

Avatar do usuário
All-x
Administrador
Administrador
Reações: 8
Mensagens: 620
Localização: Dourados-MS

Contato:

Re: Qualidade dos sprites alterada quando maximizo a tela.

Mensagem por All-x » Seg Mai 23, 2016 10:14 am

Aqui vai uma imagem de explicação:

Imagem

View In Room: É o recorte da room que irá aparecer na tela.
Port on Screen: Tamanho do recorte feito com o View In Room na tela/janela. Se escolher o mesmo tamanho não tem perda de qualidade, pois a proporção fica 1:1. Isso contando que em tela cheia a resolução não seja maior, mas caso seja ocorrerá um UpScaling (A imagem será esticada).

Ou seja, se a View In Room for 320x240 e a Port On Screen for 640x480 a imagem é ampliada em 2x e assim acarretando perda de definição. E se ativarmos o FullScreen e o monitor tenha por exemplo 1024x768, a imagem será ampliada novamente.

Agora, quando você tem um jogo com a resolução maior que a janela ou também maior que a tela, você tem que alterar o tamanho da surface de desenho do jogo. Logo essa surface também precisa ser alterada no código de troca entre Tela Cheia e Modo Janela. Ex: (No evento Step):

Código: Selecionar todos

// Se teclar F4
if keyboard_check_pressed(vk_f4)
{
    if window_get_fullscreen()
    {
        //Tamanho da janela
        window_set_size(view_wport[0], view_hport[0]);
        
        //Desenho = tamanho da janela
        surface_resize(application_surface, view_wport[0], view_hport[0]);
    
        //Vai para o modo janela
        window_set_fullscreen(false);
    }
    else
    {   
    
        //Desenho = tamanho da tela
        surface_resize(application_surface, display_get_width(), display_get_height());
        
        //Vai para o modo tela cheia
        window_set_fullscreen(true);
    }
}
Espero que ajude.

FLWS!
Começando com o Game Maker? Olhou para assinatura certa!

Imagem

Tutoriais e vídeo aulas de programação! Clique no Banner e confira!

Avatar do usuário
Matheus Carvalho
Membro
Membro
Reações: 0
Mensagens: 21

Re: Qualidade dos sprites alterada quando maximizo a tela.

Mensagem por Matheus Carvalho » Seg Mai 23, 2016 1:29 pm

Entendi o que tava fazendo errado, re-refiz o código e ficou assim:

Código: Selecionar todos

if keyboard_check_pressed(vk_f4)
{
    if !window_get_fullscreen()
    {
        window_set_fullscreen(1)
        surface_resize(application_surface, display_get_width(), display_get_height());
    }
    else
    {
        window_set_fullscreen(0)
        surface_resize(application_surface, view_wport[0], view_hport[0]);
    }
}
Agora está funcionando perfeitamente, muito obrigado pela ajuda.


Muito obrigado. Acho que entendo o que acontece, porém, ainda estou com problemas.

Modifiquei seu código para ficar assim:


Código: Selecionar todos

if keyboard_check_pressed(vk_f4)
{
    window_set_fullscreen(!window_get_fullscreen()) 
    surface_resize(application_surface, view_wport[0], view_hport[0]);
}



Ou seja, se tiver em tela cheia ele sai dela, e se não tiver ele vai pra ela. Problemas:

- Não funcionou na primeira room, ele apenas vai para tela cheia (porém preenche a tela toda), os sprites continuam perdendo qualidade.
- Funcionou na segunda room, porém apareceram barras pretas nas laterais, o que não era pra acontecer pois meu note é 16:9, a mesma proporção que uso na View in Room.

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 18 visitantes