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.

Problema com GM:S

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

Problema com GM:S

Mensagem por thyago » Sex Jun 03, 2016 12:59 am

 . Eae, faz tempo que não posto perguntando, hehe, mas estou com um problema aqui, é o seguinte tentei adaptar minha engine 
de transição de tela como se estivesse virando uma pagina que fiz originalmente no gm8, para o GM:S e não estava dando certo de jeito nehum
então fui fazendo testes e mais testes, na minha engine eu uso draw_primitive_begin_texture, no gm 8.0 ta funcionando corretamente mas no GM:S
desenha menor do que eu programei, isso ocorre quando salvo a tela e crio um background com a imagem que salvei, se eu usar uma background que ja esta no jogo 
ele fica correto, fica até melhor do que no gm 8.0 que perde um pouco de resolução, mas se dou load ele fica menor.
 . Eu fiz uma engine que tem os códigos que funcionam em ambos, é possivel abrir o mesmo projeto tanto no gm 8.0, quanto no GM:S, mas no GM:S fica menor do que esta programado, quem puder dar uma olhada, tem o download abaixo.
 . Qual seria o problema para executar o mesmo projeto, com códios que funcionam nod dois, mas distorcido no GM:S?
 . Para testar, basta pressionar para cima

GMK vs GM:S

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

Contato:

Re: Problema com GM:S

Mensagem por All-x » Sex Jun 03, 2016 10:59 am

No GMS você só pode usar texturas com dimensões na potência de 2, ou seja, 32x32, 64x64, 128x128, 256x256, 512x512 e assim vai (Isso ajuda na otimização das imagens no processamento gráfico). Para usar como background normal não há problemas, agora se vai usar como textura em polígonos tanto 2D como 3D essas imagens precisam ser tratadas de forma diferente, até para funcionar melhor nas diversas plataformas que o GMS exporta.

No caso, como a dimensão não é a ideal (640x480) os calculos ficam incorretos e as vértices ficam onde não deveriam. 

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
thyago
Membro
Membro
Reações: 0
Mensagens: 60

Re: Problema com GM:S

Mensagem por thyago » Sex Jun 03, 2016 11:32 am

 . Mas faça o teste, use o backgroun que ja esta no jogo, é o mesmo e também tem 640x480, ele funciona certinho sendo usado como textura, só não esta funcionando quando eu salvo e screen e uso como textura, 

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

Contato:

Re: Problema com GM:S

Mensagem por All-x » Sex Jun 03, 2016 11:34 am

Exatamente por isso, a que você tem no jogo já tá numa texture page de 2048x2048, já a que você carregou não.

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
thyago
Membro
Membro
Reações: 0
Mensagens: 60

Re: Problema com GM:S

Mensagem por thyago » Sex Jun 03, 2016 11:42 am

 . Ok, você tem uma idéia de como resolver esse problema, no caso vou ter que desenhar na tela distorcido antes do save_screen, pra ficar com um dos tamanhos, tipo 512X512?

Edit:
 . Consegui resolver   dessa maneira, no xtex    640/1024 e no ytex  480/512, ou seja eu divido o tamanho real pelo potencial de 2 maior que o valor real, deu certo assim, valeu
pode trancar o tópico se quiser, ta resolvido.
Editado pela última vez por thyago em Sex Jun 03, 2016 12:01 pm, em um total de 1 vez.

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

Contato:

Re: Problema com GM:S

Mensagem por All-x » Sex Jun 03, 2016 12:00 pm

Como a imagem é maior horizontalmente, o certo é salvar numa textura 1024x1024:

mySurf = surface_create(1024, 1024);
surface_copy(mySurf, 0, 0, application_surface);
surface_save(mySurf,"pag_d.png");
surface_free(mySurf);

pag_d = background_add("pag_d.png",0,1);
Depois desenhar calculando onde ficaram os limites da imagem:

draw_set_color(c_white);

draw_primitive_begin_texture(pr_trianglefan  ,background_get_texture(pag_d))
    
    var xx = (1024/view_wview);
    var yy = (1024/view_hview);
    draw_vertex_texture(0,0,0,0);
    draw_vertex_texture(view_wview * xx,0,1,0);
    draw_vertex_texture(view_wview * xx,view_hview * yy,1,1);
    draw_vertex_texture(0,view_hview * yy,0,1);

draw_primitive_end();
Lá no começo tu pode fazer um calculo pra determinar qual vai ser o tamanho da textura com base na largura ou altura que é maior da imagem. Não deu tempo de fazer aqui, estou saindo pro almoço.

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
thyago
Membro
Membro
Reações: 0
Mensagens: 60

Re: Problema com GM:S

Mensagem por thyago » Sex Jun 03, 2016 12:04 pm

 . Alex, eu resolvi não deu tempo de postar antes de você postar essa hehe, foi mais simples do que isso, eu só divido o  xtex e ytex , pelo valor potencial de 2 maior que ele, o proximo no caso,  640/1024 e 480 por 512, valeu pode trancar.

ficou assim:
draw_set_colour(c_white);


draw_primitive_begin_texture(pr_trianglefan  ,background_get_texture(pag_d)){
draw_vertex_texture(0,0,0,0)
draw_vertex_texture(view_wview ,0,640/1024,0)
draw_vertex_texture(view_wview ,view_hview,640/1024,480/512)
draw_vertex_texture(0,view_hview,0,480/512)

draw_primitive_end();
}

Trancado

Quem está online

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