Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Hoje à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
21 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 20 Visitantes

Tedi Ripper

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Troca de resolução com display_set_size está explodindo o jogo

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Qui 10 Maio 2012, 11:26

Olá!

Estou fazendo um aplicativo que começa em fullscreen, trocando resolução da tela para 800x600, pois é cheio de texto e se não ficar na resolução igual da room fica ruim a qualidade. Mas tb quero dar a opção da pessoa tirar o fullscreen, e voltar a resolução nativa da sua máquina.

Então preciso usar o display_set_size para definir a resolução quando o usuário acionar o botão que faz isso. Porém sempre que uso esse comando o jogo explode. Ou dá erro de execução e sai fora, ou a tela fica preta, windows fica maluco e tranca tudo.

Pesquisando aqui no fórum vi que o pessoal usou isso sem problemas, mas era em versão antiga do GM... agora na 8.1 alguém já testou isso? Há alguma outra solução?

Thanks!
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Klior em Qui 10 Maio 2012, 13:45

Poderia postar um exemplo?
avatar
Klior

Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Qui 10 Maio 2012, 14:19

É simples só usar o comando que dá problema.
Ex: crie um jogo novo, com uma room vazia, qualquer tamanho.
Crie um objeto que quando acionar algum botão ele executa display_set_size(800,600) ou outra resolução.

Ao rodar coisas estranhas acontecem...
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Klior em Qui 10 Maio 2012, 14:30

Você deve estar achando estrando ao sair da tela cheia, a resolução da tela está em 800x600, você tem que por a resolução da tela a mesma que estava antes de você coloca-la com 800x600, fiz um exemplo:
http://dl.dropbox.com/u/34803365/engines/fullscreen%20e%20tela%20normal.gmk
Pressione F12 para por em tela cheia.
Pressione F11 para por janela normal.

Caso não seja isso, seria melhor por um exemplo.
Edit: Fiz em Gm 8.0, caso o problema só ocorra com Gm 8.1, verifique se você está usando a ultima verão, pois estão corrigindo problemas do Gm 8.1 constantemente.
avatar
Klior

Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Qui 10 Maio 2012, 14:38

Testei teu projeto. Aciono F12, fica tela preta, ícone do windows aparece como "processando" e dá erro, tranca tudo.

Estou com última versão do 8.1

Testou no windows 7? O meu é 7.
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Klior em Qui 10 Maio 2012, 14:41

Testei com windows seven, gm 8.0. funcionou normalmente
avatar
Klior

Data de inscrição : 07/03/2010
Número de Mensagens : 426
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por GameMakerTutoriais em Qui 10 Maio 2012, 14:44


Amigo, a ideia de mudar a resolução do monitor é, basicamente, acelerar a performance da placa em relação ao sistema inteiro (quando você reduz a resolução, a placa tem que atualizar menos dados no vídeo trabalhando na mesma frequência). Se o seu jogo não usar um recurso pesado de 3D ou se o hardware em que ele rodar for muito modesto, essa função de trocar a resolução não é muito recomendada.

Dê preferência em colocar o jogo em tela inteira. O GM já interpola a imagem do jogo e dá um acabamento muito bom, mesmo se a imagem for pequena. Além das funções de mexer no registro, uma das mais perigosas do GM é a display_set_frequency(), que também não recomendaria.

Enfim, você pode tentar fazer uma coisa pra ver se é realmente um erro do GM ou se é a placa de vídeo. Mude a resolução pra 800x600 através do seu Windows mesmo, nas propriedades de vídeo. Depois disso:

1) Abre a janela de diagnóstico do DirectX. Iniciar -> Executar -> Digite "Dxdiag" e dê enter.
2) Vá na guia "Exibir" e mande testar o Direct Draw e o Direct 3D nesta resolução de 800x600. Se rodar, tudo certo, provavelmente o problema é com o GM. Nas placas de vídeo antigas, o DX não era bem suportado em todas as resoluções altas, mas hoje em dia é o contrário (embora 800x600 não seja baixa) dependendo de placa pra placa.

Eu não sei se pode dar certo, mas você pode tentar marcar aquela opção do Game Maker, nas configurações de tratamento de erros do jogo, "Write error messages to file game_errors.log". Sei que esse tratamento é em relação ao jogo e não ao comportamento em relação ao sistema, mas se funcionar, talvez dê alguma ideia a respeito do que está acontecendo.

Abraços!

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Qui 10 Maio 2012, 18:02

Sim, a idéia é o jogo entrar em tela cheia, mas preciso baixar resolução para o texto ficar com boa qualidade. Se deixar o gamemaker esticar a qualidade fica ruim.

A placa é uma GForce GTS 450. Mas tb fiz um teste numa máquina com winXP e outra placa e o resultado foi o mesmo.

Liguei a opção de geração de log mas ele não foi feito, deveria estar na pasta do jogo?

No dxdiag como falou não tem mais os botões de teste (DX11), mas isso não deveria ser problema. Se configurar o jogo para já começar em tela cheia e baixando a resolução pelo global game settings, tudo funciona blz.

Só por código que dá erro. O display_set_size que é o culpado, qualquer outra coisa funciona.

avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por GameMakerTutoriais em Qui 10 Maio 2012, 19:16

O log deveria estar na mesma pasta do jogo. Mas como ele não gerou, nem precisa mais. Ele não vai resolver. Acho que esse log deve ser só pra tratamento de erros de sintaxe.

É realmente difícil saber o que é. Um programa simplesmente fechar é um problema genérico pra praticamente qualquer coisa. Eu tentaria fazer uns testes.

1) Criar um projeto vazio só com uma room e no código de inicialização dela, tentar mudar a resolução desse jeito, via código:

Código:
if display_test_all(800,600,-1,-1) then display_set_size(800,600);

2) Em que evento você está colocando essa função?
3) Você está usando somente essa função? Nem sempre uma resolução X é compatível com um colordepth Y ou frequência Z.
4) Tentar usar alguma dll pra ver o resultado dessa alteração em runtime, usando exatamente o mesmo evento e código, apenas substituindo a função nativa pela função na dll.

Quanto mais você conseguir observar do problema, melhor as chances de a gente conseguir uma solução.

A placa é uma GForce GTS 450. Mas tb fiz um teste numa máquina com winXP e outra placa e o resultado foi o mesmo.

Eu fiz um teste aqui pra mudar a resolução durante o jogo e funcionou nas versões 4.3, 6.1, 7 e 8 no Windows XP. Se você puder mostrar a forma como você colocou o código, e onde, talvez fique mais fácil.

Abraços!

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Kabeção em Qui 10 Maio 2012, 19:17

Por falar nisso, ouvi dizer que mudaram a forma que redimensionam os jogos no GM 8.1.

http://gmc.yoyogames.com/index.php?showtopic=537949

Em uma das repostas falam que essa função que era usada para acelerar a performance é antiga e sempre gerou problemas principalmente como os monitores widescreen.
Não é recomendado seu uso pois hoje em dia o sistema operacional usa diretamente o hardware pra isso.

O melhor é colocar fullscreen e deixar o Windows fazer os ajustes de acordo com a resolução do usuário.
avatar
Kabeção

Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 3
   : 0
   : 1

Ver perfil do usuário http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por GameMakerTutoriais em Qui 10 Maio 2012, 19:20

Eu também concordo. Essas funções de display são terríveis. Elas, e as do registro são o gatilho do Game Maker. Mas tenta lá de qualquer forma, se der certo, talvez a gente consiga alguma solução.

Valeu!

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Qui 10 Maio 2012, 20:33

Ninja8006:

Fiz o teste que você indicou, rodou sem problemas no GM 8 mas deu o erro no 8.1. Realmente esta função está bichada... Vou desistir de usá-la.

Quanto a sua sugestão de usar dll, não entendi. Diz via um plugin, extensão ?

Eu já usei o display_set_size no create de objeto, ou quando aperta uma tecla específica, sempre dá o mesmo erro.

Pelo que li nos links indicados pelo Kabeção, realmente o negócio tá com problemas, outras pessoas tem o mesmo bug...

A questão é que meu "aplicativo" é um leitor de carta virtual exibindo o conteúdo delas na tela, ou seja, é praticamente texto puro. Por isso texto tem que ficar bom. A room nativa é 1024x768. Mas eu gostaria que o "jogo" entrasse em tela cheia para dar maior imersão. Porém se uso fullscreen o texto fica assim: (já que meu desktop é 1280x1024)
http://www.freeimagehosting.net/ktzsf

Já se mando trocar resolução para 1024x768 - igual ao room, fica do jeito que deveria ficar sempre:
http://www.freeimagehosting.net/z52re

Se não tiver como trocar resolução para arrumar o texto em fullscreen, vou ter que desistir disso e deixar só janela... ou fazer 2 exe´s na hora de distribuir, um full e outro não, a pessoa escolhe qual quer rodar. Nada elegante, mas é uma saída... pig
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por GameMakerTutoriais em Sex 11 Maio 2012, 01:49


A sugestão da dll era pra gente poder fazer um comparativo, mas como você já testou na 8 e não deu erro, o problema deve ser mesmo na 8.1.

Já se mando trocar resolução para 1024x768 - igual ao room, fica do jeito que deveria ficar sempre:

Você tem duas opções então. A primeira é ir naquela janelinha de opções globais do jogo e, na opção "Scaling", marcar a "Fixed scale in 100%". Nesse caso, quando o jogo for entrar em fullscreen ele não vai redimensionar a janela, mas pelo menos não vai distorcer.

Se mesmo assim não melhorar você pode tentar usar uma dll no lugar da função. Eu fiz um exemplo aqui para o GM8, mas a ideia é que você experimente na 8.1:

http://dl.dropbox.com/u/77818756/game_maker_changeres.rar

Antes de alterar a resolução essa dll vai fazer um teste de vídeo, mas é bem rápido. Ela só vai alterar se o teste for positivo. Eu compilei e testei no Windows XP, mas não pude testar no Seven.

Talvez usar uma dll seja a solução pelo menos até aparecer mais alguém com alguma outra ideia. De qualquer forma, boa sorte!

Abraços!

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Sex 11 Maio 2012, 13:21

Testei no GM 8.1, ele realmente troca a resolução e não dá erro, mas toda tela do jogo fica preta...
Se mando trocar a resolução automaticamente via dll, logo depois que ela inicializa, dá erro.

Usar o fixed scale deixa só barra pretas no fullscreen, com a tela pequena no meio, então não dá muita diferença de deixar em janela normal...

Não estou vendo solução...

(Obs: esse dll programou por fora, você que fez?)

[]´s
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por GameMakerTutoriais em Sex 11 Maio 2012, 13:42


Rapaz, que negócio doido é esse heim. Eu fiz a dll (funcionou beleza no XP) e tô pensando aqui em uma coisa que até não deve ser coincidência não... Eu usei um recurso de API porque é bem seguro (ou pelo menos deveria) mas no próprio site da Msdn eles estão apontando um erro de compatibilidade com o Vista/Seven:

http://social.msdn.microsoft.com/Forums/en/windowsuidevelopment/thread/5bc2396d-1e0e-44fb-b73b-95f8dfc45684

Quem sabe não seja esse o problema do Game Maker também... scratch

Até a gente achar uma solução eu vou tentar encontrar uma forma de alterar a resolução por outro caminho seguro e que seja compatível com qualquer Windows... Se eu conseguir eu posto aqui no tópico.

Abraços!

GameMakerTutoriais

Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por saim em Sex 11 Maio 2012, 14:05

O papo parece meio evoluído demais pra uma solução tão prosaica, mas eu sou cara-de-pau e posto assim mesmo: Já pensou em alterar o tamanho da view pra bater com o tamanho da tela? Isso eliminaria a necessidade de mudar a resolução (se bem que eu não tenho certeza se entendi direito o problema).
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Sex 11 Maio 2012, 14:25

Se eu criar uma view e fazer ela maior, tudo estica e fica com texto ruim, mesmo problema de configurar no global game settings p/ ficar em fullscreen e esticar.

Fiz tudo pensando em 1024x768, que seria uma resolução mais usada e genérica hoje em dia. Todos os gráficos, etc, feios pensando nisso. Realmente não imagino uma forma do visual ficar bom sem baixar a resolução do windows... (digo se a pessoa usa 1280x1024 ou algo maior)
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por saim em Sex 11 Maio 2012, 14:54

É só fazer a view ser exatamente do tamanho da tela e ocupar exatamente o tamanho da tela, usando o display_get_width/height. É uma rotina que eu uso direto:
Código:
lar = display_get_width; alt = display_get_height;

view_enabled = true;
view_visible[0] = true;
view_xview[0] = 0; view_yview[0] = 0;
view_xport[0] = 0; view_yport[0] = 0;
view_wview[0] = lar; view_hview[0] = alt;
view_wport[0] = lar; view_hport[0] = alt;
view_angle[0] = 0;
window_set_position(0, 0);

//e, se quiser,
window_set_fullscreen = true;
//o que só vai sumir com a barrinha do windows. O jogo já vai estar dimensionado

Eu costumo mudar o tamanho da room antes de usar esses códigos, ou seja, antes de ir pra room. Não sei se eles funcionariam bem sem redimensionar a room (mas acho que sim). Pra redimensionar a room, eu uso room_set_width e room_set_height
avatar
saim

Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Troca de resolução com display_set_size está explodindo o jogo

Mensagem por Mauricio em Sex 11 Maio 2012, 16:11

Fiz um teste aqui com este teu código (usando o fullscreen(true)) e ficou esticado exatamente igual ao ligar o fullscreen via global game settings.

Sem usar o fullscreen não mudou nada do normal.
avatar
Mauricio

Data de inscrição : 13/06/2008
Número de Mensagens : 114
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 1
   : 0
   :

Ver perfil do usuário http://mbg3dmind.wordpress.com/

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum