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 transição de room Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Problema com transição de room

Mensagem por DarlesLSF » Qua Mai 29, 2019 8:05 pm

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?

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

Contato:

Re: Problema com transição de room

Mensagem por All-x » Qui Mai 30, 2019 10:20 am

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/
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
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Qui Mai 30, 2019 12:07 pm

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

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

Contato:

Re: Problema com transição de room

Mensagem por All-x » Qui Mai 30, 2019 12:31 pm

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.
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
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Qui Mai 30, 2019 6:38 pm

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);
}

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

Contato:

Re: Problema com transição de room

Mensagem por All-x » Qui Mai 30, 2019 7:15 pm

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).
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
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Qui Mai 30, 2019 9:34 pm

@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.

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

Contato:

Re: Problema com transição de room

Mensagem por All-x » Sex Mai 31, 2019 9:22 am

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.
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
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Sex Mai 31, 2019 12:11 pm

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

Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Sex Mai 31, 2019 9:47 pm

É, 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;
    }
}

Avatar do usuário
LLGD
Programador
Programador
Reações: 0
Mensagens: 18

Re: Problema com transição de room

Mensagem por LLGD » Seg Jun 03, 2019 8:53 am

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

Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Seg Jun 03, 2019 7:02 pm

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.

Avatar do usuário
LLGD
Programador
Programador
Reações: 0
Mensagens: 18

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

Mensagem por LLGD » Ter Jun 04, 2019 2:21 pm

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é:

Avatar do usuário
DarlesLSF
Membro
Membro
Reações: 0
Mensagens: 107
Localização: Humaitá - RS

Re: Problema com transição de room

Mensagem por DarlesLSF » Seg Jun 10, 2019 8:24 pm

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

Avatar do usuário
LLGD
Programador
Programador
Reações: 0
Mensagens: 18

Re: Problema com transição de room

Mensagem por LLGD » Qui Jun 13, 2019 3:16 pm

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:

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante