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 caixas de dialogo

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Problema com caixas de dialogo

Mensagem por 186557 » Qua Fev 13, 2019 10:41 pm

Sendo bem honesto eu não sei se é um bug do game maker ou eu que acabei modificando o codigo e não vi, mas resumindo,
as caixas de dialogo que fiz estão com um bug em que quando a mensagem toda é mostrada ao inves da caixa fechar a mensagem reinicia, eu realmente não sei oque houve pois esse codigo funcionava perfeitamente até hoje.

eu fiz uma variavel chamada "global.text1" que verifica se a caixa de dialogo está ativada ou não.

Nos create dos npcs tem o codigo

Código: Selecionar todos

global.text1 = false
Esse é o codigo step do npc onde a variavel checa se a caixa esta ativada ou não, se ela não estiver o "obj_text_mago1" será criado e ele irá controlar as mensagens da caixa.

Código: Selecionar todos

if distance_to_object(obj_player) < 18 && distance_to_object(obj_player) > 0 {
if (keyboard_check_pressed(ord("S")) && global.text1 = false){
    instance_create(x,y,obj_text_mago1)
    if (sign(obj_npc1.x - obj_player.x)){
        sprite_index = spr_npc2;
        image_speed = 0.07;
         } else if (sign(obj_npc1.x + obj_player.x)){
         sprite_index = spr_npc;
         image_speed = 0.07;
              }  
        }

}
Dentro do create do "obj_text_mago1" tem os codigos:

Código: Selecionar todos

global.text1 = true

text1 = string("Please iracildo fix the magic of this world.#All of us believe on you.")
text2 = string("Hamburger.")


talk = 1

out = string("")
spd = 0
Dentro do step tem

Código: Selecionar todos

if talk = 1 {
out = string_copy(text1,1,spd)
spd+=2
}

if talk = 3 {
out = string_copy(text2,1,spd)
spd+=2
}

if keyboard_check_pressed(ord("S")) {
talk+=1;
spd = 0
}

if talk == 2{
     instance_destroy()
     } 
     
     if talk == 4{
     instance_destroy()
     } 
e por fim no evento Instance Destroy tem:

Código: Selecionar todos

global.text1 = false
Ou seja caso a caixa esteja desligada o "obj_text_mago1" é criado ao aperta "S" e caso a caixa esteja ligada ao apertar "S" a variavem "talk" recebe um valor a mais para mudar a mensagem. Tem alguma falha no cogido ou é algum bug do Game Maker?

Avatar do usuário
Cheguevara
Game Designer
Game Designer
Reações: 0
Mensagens: 44

Re: Problema com caixas de dialogo

Mensagem por Cheguevara » Qua Fev 13, 2019 11:37 pm

Eu estou pelo celular, então não tem como eu te ajudar muito agora, mas, eu não entendi direito esse seu código no step do segundo objeto, lembre-se que o game maker faz a leitura de cima para baixo e não ao contrário, tente colocar em switchs ou else if assim que eu chegar em casa dou um salve nesse seu código.

Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Re: Problema com caixas de dialogo

Mensagem por 186557 » Qui Fev 14, 2019 9:22 pm

Ok. Lembrando que esse codigo veio desse video aqui: https://www.youtube.com/watch?v=VLFneLQB3_k
E ele funcionava perfeitamente até segunda, por isso to em duvida se pode ser algum bug do game maker. Tem alguma configuração sobre as variaveis globais nele?

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Problema com caixas de dialogo

Mensagem por None » Sex Fev 15, 2019 9:22 am

O problema no seu código é que ele está "mal" feito.
Coloque todos os seus textos dentro de um vetor, você então cria uma variável para determinar o índice atual em que você está no vetor, você checa se o índice atual é menor do que o tamanho do seu vetor, se sim então você avança o índice se não então você encerra o texto.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Avatar do usuário
186557
Programador
Programador
Reações: 0
Mensagens: 28

Re: Problema com caixas de dialogo

Mensagem por 186557 » Ter Mar 12, 2019 11:28 pm

Opa! kk já faz um tempo. Eu reogarnizei o codigo e esta funcionando, mas gostaria de saber se tem como "verificar" se a mensagem da caixa esta sendo escrita ou se já terminou?

Avatar do usuário
None
Colaborador
Colaborador
Reações: 2
Mensagens: 286

Re: Problema com caixas de dialogo

Mensagem por None » Qua Mar 13, 2019 10:34 am

Mesma lógica de antes.
Você vê o tamanho da string e checa se o texto atual é menor que o tamanho total da string final.
Tutorial de jogo de plataforma completo: https://youtu.be/MMUy_bMKqPk
Como criar um jogo de RPG Japonês no estilo Final Fantasy https://goo.gl/efr6fx

Responder

Quem está online

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