Página 1 de 1

Problema com transição de room

Enviado: Qua Mai 29, 2019 8:05 pm
por DarlesLSF
Boa noite, até ontem minha transição de room estava funcionando normalmente. Dai hj, quando vou testar novamente, simplesmente não acontece nada.
Testei algumas vezes e percebi que o problema consiste aqui:
Essa é a parte em que se inicia a transição. O evento abaixo esta no Step.

Código: Selecionar todos

if (global.permitir_menu)
{
    if (keyboard_check_pressed(ord("F")))
    {
        global.spr_jogador = obj_jogador.sprite_index;
        global.targetroom = room;
        global.posx_jogador = obj_jogador.x;
        global.posy_jogador = obj_jogador.y;
        global.contador_batalha = false;
        global.andarnormal = false;
        with (obj_jogador)
        {
            image_speed = 0;
        }
        desenhar_trans = true;
        global.permitir_menu = false;
    }
}
Dai aqui que vem o problema. Mesmo colocando a variável como true, não inicia-se os códigos dentro dela, até coloquei um show_debug_message pra ver se estava executando os códigos, mas não estão. O evento abaixo está no Draw.

Código: Selecionar todos

if (desenhar_trans)
{
    show_debug_message("oi");
    depth = -99;
    alpha_menu += .05;
    if (alpha_menu > 1)
    {
        alpha_menu = 1;
        with (obj_jogador)
        {
            sprite_index = spr_transparente;
        }
        if (room == Menu)
        {
            ligou_movi = false;
            with (obj_jogador)
            {
                sprite_index = global.spr_jogador;
            }
            room_goto(global.targetroom);
        } else
        {
            room_goto(global.room_menu);
        }
        obj_jogador.x = global.posx_jogador;
        obj_jogador.y = global.posy_jogador;
        desenhar_trans2 = true;
        desenhar_trans = false;
    }
    draw_set_colour(c_black);
    draw_set_alpha(alpha_menu);
    draw_rectangle(view_xview[0], view_yview[0], view_xview[0] + view_wview[0], view_yview[0] + view_hview[0], false)
    draw_set_alpha(1);
}
O que pode estar impossibilitando que se iniciem os códigos, mesmo a variável estando como true?

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 10:20 am
por All-x
O "Oi" não está aparecendo no console? E dentro desse código ao pressionar a tecla F, está ocorrendo normalmente? Tem algum código no End Step?

Veja se a opção Applies To: não foi modificada nos eventos:

Imagem

Fiz um mini-tutorial sobre transição de rooms, ia postar no fim de semana, mas como tua dúvida apareceu resolvi antecipar. Dá uma olhada caso não consiga resolver ou apenas de curiosidade:

1 Imagem, 1 Tutorial #002: Transição de rooms (Fade-In-Out)

Abraços o/

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 12:07 pm
por DarlesLSF
Alex FC escreveu:O "Oi" não está aparecendo no console? E dentro desse código ao pressionar a tecla F, está ocorrendo normalmente? Tem algum código no End Step?

Veja se a opção Applies To: não foi modificada nos eventos:

Imagem

Fiz um mini-tutorial sobre transição de rooms, ia postar no fim de semana, mas como tua dúvida apareceu resolvi antecipar. Dá uma olhada caso não consiga resolver ou apenas de curiosidade:

1 Imagem, 1 Tutorial #002: Transição de rooms (Fade-In-Out)

Abraços o/
Sim, o "oi" não está aparecendo, já que coloquei ele ali só pra ver se rodava o código dentro do If.
Após eu apertar a tecla F, simplesmente trava. O Personagem não mexe mais, não funciona nada mais. Simplesmente não sei o que aconteceu kk
Todos os eventos estão em "Self". E não há End step.
Imagem

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 12:31 pm
por All-x
Executa o jogo com F6 (Debug).

Imagem

Clica no ícone de pausa assim que travar. Depois vá teclando F11 (Step In) e conferindo os valores das variáveis na em Local Variables.

Senão só vendo o código todo, pois só pelo que postou devia funcionar.

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 6:38 pm
por DarlesLSF
Então, pelo que entendi, tá dizendo que a variável "desenhar_trans" está como true, certo?
Imagem
Ou seja, deveria executar o código abaixo, mas não está executando.

Código: Selecionar todos

if (desenhar_trans)
{
    show_debug_message("oi");
    depth = -99;
    alpha_menu += .05;
    if (alpha_menu > 1)
    {
        alpha_menu = 1;
        with (obj_jogador)
        {
            sprite_index = spr_transparente;
        }
        if (room == Menu)
        {
            ligou_movi = false;
            with (obj_jogador)
            {
                sprite_index = global.spr_jogador;
            }
            room_goto(global.targetroom);
        } else
        {
            room_goto(global.room_menu);
        }
        obj_jogador.x = global.posx_jogador;
        obj_jogador.y = global.posy_jogador;
        desenhar_trans2 = true;
        desenhar_trans = false;
    }
    draw_set_colour(c_black);
    draw_set_alpha(alpha_menu);
    draw_rectangle(view_xview[0], view_yview[0], view_xview[0] + view_wview[0], view_yview[0] + view_hview[0], false)
    draw_set_alpha(1);
}

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 7:15 pm
por All-x
Não basta só olhar se ficou 1 (true). Vá teclando F11 e acompanhando o código. Ok, já vimos que fica 1 (true). E depois por onde o código percorre? Ele chega no evento Draw?? Para antes? E se parou, parou onde? É pra isso que serve o debug.

Pode ser também um bug do GMS1. Copie tudo para um txt, delete o objeto e coloque os códigos novamente (Sem duplicar).

Re: Problema com transição de room

Enviado: Qui Mai 30, 2019 9:34 pm
por DarlesLSF
@Alex FC
Tentei utilizar o teu tutorial de troca de rooms, mas acontece a mesma coisa: simplesmente trava na hora que iria iniciar a transição. Eu fuço em tudo e tento ver o por quê de não trocar de room mais, mas não acho nada.

Re: Problema com transição de room

Enviado: Sex Mai 31, 2019 9:22 am
por All-x
Muito estranho. Pode ser algum problema na sua máquina ou nos componentes do GM (DirectX ou DotNetFX 3.5). De toda forma faça um teste em outro PC ou veja se alguma atualização do Windows tenha falhado e faça uma restauração para um data onde estava funcionando.

Antes faça uma verificação no código se não há nenhuma ocorrência do código room = nome_da_room (Com apenas um =)tanto em condicionais como para mudar de room, isso costuma fazer o game travar ou ficar muito lento.

Re: Problema com transição de room

Enviado: Sex Mai 31, 2019 12:11 pm
por DarlesLSF
Alex FC escreveu:Muito estranho. Pode ser algum problema na sua máquina ou nos componentes do GM (DirectX ou DotNetFX 3.5). De toda forma faça um teste em outro PC ou veja se alguma atualização do Windows tenha falhado e faça uma restauração para um data onde estava funcionando.

Antes faça uma verificação no código se não há nenhuma ocorrência do código room = nome_da_room (Com apenas um =)tanto em condicionais como para mudar de room, isso costuma fazer o game travar ou ficar muito lento.
Hoje a noite vou tentar novamente, mas provavelmente terei que refazer a transição kkk

Re: Problema com transição de room

Enviado: Sex Mai 31, 2019 9:47 pm
por DarlesLSF
É, refiz todo o código mas não deu em nada. Exclui o objeto e recriei ele, pois achei que poderia ser um bug nele, mas nada mudou.
O interessante é que a variável que iniciaria a transição está como "true", mas o código dentro do If não é executado e não sei o por quê disso.
Posto novamente o código:
Step event

Código: Selecionar todos

if (global.permitir_menu)
{
    if (keyboard_check_pressed(ord("F")))
    {
        global.spr_jogador = obj_jogador.sprite_index;
        global.targetroom = room;
        global.posx_jogador = obj_jogador.x;
        global.posy_jogador = obj_jogador.y;
        global.contador_batalha = false;
        global.andarnormal = false;
        with (obj_jogador)
        {
            image_speed = 0;
        }
        iniciar_trans = true;  // variável que inicia a transição
        alarm0 = 11;
        alarm[0] = .2 * room_speed;
    }
}
Draw event

Código: Selecionar todos

if (iniciar_trans)  // no modo debug, a variável está como true, porém o código não é executado.
{
    alpha_menu += .05;
    draw_set_alpha(alpha_menu)
    draw_set_color(c_black);
    draw_rectangle(view_xview[0], view_yview[0], view_xview[0] + view_wview[0], view_yview[0] + view_hview[0], false)
    draw_set_alpha(1);
    if (alpha_menu >= 1)
    {
        room_goto(Menu);
        desenhar_trans2 = true;
        iniciar_trans = false;
    }
}

Re: Problema com transição de room

Enviado: Seg Jun 03, 2019 8:53 am
por LLGD
Você está usando o Game Maker 1.4 né? Verifica por favor na sua sala, clica no botão de "Instance Ordering" na barra superior ao lado do botão "?" ajuda, e veja se tem algum objeto escrito como <undefined>.

Verifica se o mesmo objeto não existe na outra sala. Exemplo, você vai da sala 1 para a sala 2 e na sala 2 tem o objeto de transição.

EDIT

Notei que no draw você está usando:
desenhar_trans2 = true;
desenhar_trans = false;

mas desenhar_trans não é global? Então deveria ser: global.desenhar_trans :P

Re: Problema com transição de room

Enviado: Seg Jun 03, 2019 7:02 pm
por DarlesLSF
LLGD escreveu:Você está usando o Game Maker 1.4 né? Verifica por favor na sua sala, clica no botão de "Instance Ordering" na barra superior ao lado do botão "?" ajuda, e veja se tem algum objeto escrito como <undefined>.

Verifica se o mesmo objeto não existe na outra sala. Exemplo, você vai da sala 1 para a sala 2 e na sala 2 tem o objeto de transição.

EDIT

Notei que no draw você está usando:
desenhar_trans2 = true;
desenhar_trans = false;

mas desenhar_trans não é global? Então deveria ser: global.desenhar_trans :P
Essa variável não é global, pq ela só é usada dentro de um objeto, que no caso é o objeto do menu do jogo. Nesse objeto eu faço a transição entre rooms, bem como inicio o próprio menu nele mesmo.

Re: Problema com transição de room  Tópico resolvido

Enviado: Ter Jun 04, 2019 2:21 pm
por LLGD
A ta, desculpe não me atentei. Percebi que o objeto está invisível. Quando um objeto não está visível, o Draw também não aparece.

Outra coisa que notei é que você está usando view, e TALVEZ esteja usando algum código para desativar as instancias fora da view, se o seu objeto está sendo criado no 0,0 e você usa o código para desativas as instancias fora da view, pode ser por isso que não executa. Você poderia mandar pra gente um novo GMX apenas com esses objetos e funções para eu poder tentar analisar mais a fundo o que está acontecendo. :ué:

Re: Problema com transição de room

Enviado: Seg Jun 10, 2019 8:24 pm
por DarlesLSF
LLGD escreveu:A ta, desculpe não me atentei. Percebi que o objeto está invisível. Quando um objeto não está visível, o Draw também não aparece.

Outra coisa que notei é que você está usando view, e TALVEZ esteja usando algum código para desativar as instancias fora da view, se o seu objeto está sendo criado no 0,0 e você usa o código para desativas as instancias fora da view, pode ser por isso que não executa. Você poderia mandar pra gente um novo GMX apenas com esses objetos e funções para eu poder tentar analisar mais a fundo o que está acontecendo. :ué:
Cara, eu só coloquei o objeto visível e tudo voltou a funcionar normalmente. Obrigado pela ajuda kkkk

Re: Problema com transição de room

Enviado: Qui Jun 13, 2019 3:16 pm
por LLGD
DarlesLSF escreveu: Cara, eu só coloquei o objeto visível e tudo voltou a funcionar normalmente. Obrigado pela ajuda kkkk
Que bom! kkkk De nada! :blz: