[Dúvida] window_set_size e barras de vida Bugando!

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

[Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Qui 01 Maio 2014, 23:11

Boa noite pessoal, beleza?

To com um problema que compromete a HUD do meu game: uso window set size para permitir que o jogador redimensione a janela do jogo, ae as funções draw que uso para criar a HUD bugam e fazem as coisas se deslocarem alguns pixels e fica feio

O tamanho original da room é 240 x 320, ae uso pro exemplo, window_set_size(240*2,320*2) para deixar maior, só que buga...

Do modo que estou fazendo, está errado? As bordas da janela são contadas ou só o tamanho da room?

Obrigado ae Happy

EDIT:
Eu uso view_xview e view_yview para orientar os draws


Última edição por dharrison em Sex 16 Maio 2014, 02:55, editado 1 vez(es)

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Dom 04 Maio 2014, 14:54

Upando o Tópico depois de 48 horas de Inatividade

Minha dúvida ainda não foi sanada  tonto

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por PedroX em Dom 04 Maio 2014, 16:09

Mude o view_w/hview e o view_w/hport também.

Só que precisa ir para outra room e voltar à atual. Mesmo assim, é só colocar persistent temporariamente.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Dom 04 Maio 2014, 16:12

Nesse caso complica, pq tudo ocorre na mesma room
Agora nao sei se a conta esta errada ou nao

Mesmo usando valores absolutos (ao inves de views) isso buga

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por cascavelo em Dom 04 Maio 2014, 19:40

Utilize o evento draw gui pra desenhar a hud e use esta função para definir a nova gui
display_set_gui_size(view_wview,view_hview);

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Dom 04 Maio 2014, 19:42

cascavelo escreveu:Utilize o evento draw gui pra desenhar a hud e use esta função para definir a nova gui
display_set_gui_size(view_wview,view_hview);

isso é do GMS? o meu é GM 8.0 PRO

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por cascavelo em Seg 05 Maio 2014, 09:16

Achei que fosse pro GMS, você não baixou ele na promoção?

O evento draw gui surgiu no GMS pra solucionar justamente o tipo de problema que você tem. No GM8 dá uns bugs estranhos mesmo ao redimensionar  janelas, piora quando se executa o game em um pc com video em aspecto diferente ao do pc onde o jogo foi programado.

cascavelo

Ranking : Nota A
Número de Mensagens : 1011
Idade : 46
Data de inscrição : 08/12/2011
Notas recebidas : A - A - A - A - A -A -C
Reputação : 71
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 1

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Kabeção em Seg 05 Maio 2014, 10:22

Isso não faz muito sentido...
Se você esta distorcendo só a janela a imagem final do jogo acompanha essa distorção mas as coisas não mudam de lugar, ainda mais em multiplos da resolução original.

Coloca ai alguns screenshoots.  sorrindo2

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Seg 05 Maio 2014, 11:29

cascavelo escreveu:Achei que fosse pro GMS, você não baixou ele na promoção?

O evento draw gui surgiu no GMS pra solucionar justamente o tipo de problema que você tem. No GM8 dá uns bugs estranhos mesmo ao redimensionar  janelas, piora quando se executa o game em um pc com video em aspecto diferente ao do pc onde o jogo foi programado.

Não, eu estava ausente do fórum e nem vi a promoção.

Kabeção escreveu:Isso não faz muito sentido...
Se você esta distorcendo só a janela a imagem final do jogo acompanha essa distorção mas as coisas não mudam de lugar, ainda mais em multiplos da resolução original.

Coloca ai alguns screenshoots.  sorrindo2

Vou colocar, na imagem maior tava certo ainda nao tinha redimensionado nas Opções do Game, agora olha depois...

Primeira Imagem:
Imagens Distorcidas:


dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Kabeção em Seg 05 Maio 2014, 11:59

Entendi.
Pensei que isso não era o caso no GM8.0 mas parece que ele também usa as funções padrões do DirectX para desenhar formas primitivas.
Por exemplo, se você desenhar um circulo e aumentar a resolução da janela, o círculo não ficara pixelizado porque a api gráfica vai sempre desenhar a forma perfeitamente independente da resolução.
Isso causa muitos problemas de alinhamento além de não se parecer com pixel art.

Uma solução é usar sprites ao invés das funções e o draw_sprite_ext.
Faça uma imagem com 1 pixel de largura e use image_xscale para mudar o tamanho, além disso se for branca, você pode facilmente mudar a cor com image_blend.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Seg 05 Maio 2014, 12:15

Kabeção escreveu:Entendi.
Pensei que isso não era o caso no GM8.0 mas parece que ele também usa as funções padrões do DirectX para desenhar formas primitivas.
Por exemplo, se você desenhar um circulo e aumentar a resolução da janela, o círculo não ficara pixelizado porque a api gráfica vai sempre desenhar a forma perfeitamente independente da resolução.
Isso causa muitos problemas de alinhamento além de não se parecer com pixel art.

Uma solução é usar sprites ao invés das funções e o draw_sprite_ext.
Faça uma imagem com 1 pixel de largura e use image_xscale para mudar o tamanho, além disso se for branca, você pode facilmente mudar a cor com image_blend.

Hmm, vlw por me ajudar a entender o Problema Kabeção
Eu tinha pensando em uasr sprites para isso, mas fica a duvida: os sprites não vão distorcer o alinhamento também? (eestou usando posição absoluta da Room para posicionar tudo)

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Kabeção em Seg 05 Maio 2014, 14:14

O problema é como a api desenha as formas.
São como vetores, tudo é calculado e desenhado dinamicamente, se você desenhar uma linha de 1px, mesmo que você dobre a resolução a linha ainda terá 1px enquanto as imagens do jogo serão propriamente distorcida por serem bitmaps.

É isso que gera o problema de alinhamento.
Como isso era algo novo (não era assim no GM7), parece que não tinham percebido esse bug e otimizado a engine para resolver esses problemas por conta própria.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Seg 05 Maio 2014, 14:20

Kabeção escreveu:O problema é como a api desenha as formas.
São como vetores, tudo é calculado e desenhado dinamicamente, se você desenhar uma linha de 1px, mesmo que você dobre a resolução a linha ainda terá 1px enquanto as imagens do jogo serão propriamente distorcida por serem bitmaps.

É isso que gera o problema de alinhamento.
Como isso era algo novo (não era assim no GM7), parece que não tinham percebido esse bug e otimizado a engine para resolver esses problemas por conta própria.

Entendi, eu vou fazer uns testes assim que chegar em casa, ae se resolver trancarei o tópico
Muito obrigado pela força Happy

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Sex 16 Maio 2014, 02:20

Pois é, passou alguns dias tentei resolver usando draw_sprite_ext mas continua o mesmo problema, vejam:



isso não faz sentido algum..
Alguém poderia me ajudar com isso? :/

EDIT:
Pessoal, tá possuído pelo capiroto!
Criei um objeto que carrega o sprite ao invés de usar Draw, e até com o objeto estando em posição absoluta na room acontece esse bug!!
Não entendo, mesmo .. .-.

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Mr. Kaleb em Sex 16 Maio 2014, 08:35

Tem como postar o source ou os códigos que você tá usando? Fica mais fácil para alguém tentar achar uma solução.

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Sex 16 Maio 2014, 09:58

Mr. Kaleb escreveu:Tem como postar o source ou os códigos que você tá usando? Fica mais fácil para alguém tentar achar uma solução.

É complicado pq é do meu jogo Planet Wars, que tem 50 MB
Mas estou usando a forma mas simples dos códigos, eu imagino que o problema seja no redimesionamento da janela, pq quando o jogo inicia com a tela grande ou pequena fica tudo certo
Ah, outra coisa que acontece, é que quando use o comando game_restart, o jogo não reinicia, buga toda a tela e tal, acho que é coisa do GM 8.0

Mas tai os códigos:
SCRIPT DRAW
Código:
/Desenha quantidade de Energia, Vidas, Bombas, Munição e Score
draw_text(28,309,"x"+string(global.vidas))
draw_set_halign(fa_right)
draw_text(234,280,global.pontos)
draw_set_halign(fa_left)
/*if obj_player.morto=false{draw_sprite_ext(spr_bar,0,24,279,(obj_player.vida*0.32),(0.7),0,c_red,1)}
else{draw_text(24,280,"DEAD")}*/
draw_set_color(c_lime)
draw_text(115,280,obj_player.muni)
draw_set_color(c_fuchsia)
draw_text(160,280,"x"+string(obj_player.bombs))

////Aliados:
//Fran:
if instance_exists(obj_fran){
if obj_fran.morto=false{draw_sprite_ext(spr_bar,0,24,289,(obj_fran.vida*0.64),(0.7),0,c_fuchsia,1)}
else{draw_text(24,290,"DEAD")}
}
//Thor:
if obj_thor.morto=false{draw_sprite_ext(spr_bar,0,24,299,(round((obj_thor.vida*0.213))),(0.7),0,c_lime,1)}
else{draw_text(24,300,"DEAD")}

REDIMENSIONAR TELA
Código:
ini_open("userconfig.cfg")
    i=ini_read_real("options","tela",0)
        if i=0
    {
    window_set_size(240,320);
    window_center()
    }
        if i=1
    {
    window_set_size(240*2,320*2);
    window_center()
    }
        if i=2
    {
    window_set_size(240*3,320*3);
    window_center()
    }
        if i=3
    {
    window_set_fullscreen(true);
    }
    else
    {
    window_set_fullscreen(false);
    }
    ini_close();


EDIT:
Acho que descobri a raiz do problema, é o Global Game Settings


Se eu coloco Keep Aspect Ratio ou Fullscreen ocorre esse bug
Se eu coloco Fixed Scale in 100% o Draw fica perfeito, mas a janela não aumenta e nem diminui....

E agora?

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Kabeção em Sex 16 Maio 2014, 12:07

Você deveria aumentar também o view_w/hport além do tamanho da janela.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por dharrison em Sex 16 Maio 2014, 19:07

Kabeção escreveu:Você deveria aumentar também o view_w/hport além do tamanho da janela.

o scratchware_dev me passou uma engine que fazia isso, mas tbm nao deu certo
Eu arranjei uma solução temporária, reiniciar o jogo pra aplicar as configurações

Mas vlw o apoio gente Happy

dharrison

Ranking : Nota B
Número de Mensagens : 1243
Idade : 25
Data de inscrição : 04/02/2009
Notas recebidas : A - B
Reputação : 89
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: [Dúvida] window_set_size e barras de vida Bugando!

Mensagem por Conteúdo patrocinado Hoje à(s) 23:53


Conteúdo patrocinado


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